1)fastjson jar包下载地址:https://sourceforge.net/projects/fastjson/
下载完成后需要把jar包拷贝到WEB-INF/lib文件夹中。
2)使用pom.xml配置:
如果你使用了Maven,maven repository配置如下:

  1. <repository>
  2. <id>opensesame</id>
  3. <name>Alibaba OpenSource Repsoitory</name>
  4. <url>http://code.alibabatech.com/mvn/releases/</url>
  5. <snapshots>
  6. <enabled>false</enabled>
  7. </snapshots>
  8. </repository>

pom.xml文件中加入依赖依赖:

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>fastjson</artifactId>
  4. <version>1.1.34</version>
  5. </dependency>

使用springmvc的情况下,需要在springmvc.xml中添加配置信息:

  1. <!-- 基于Annotation的映射方式 -->
  2. <mvc:annotation-driven >
  3. <mvc:message-converters register-defaults="true">
  4. <bean class="org.springframework.http.converter.StringHttpMessageConverter">
  5. <constructor-arg value="UTF-8" />
  6. </bean>
  7. <!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  8. <property name="supportedMediaTypes">
  9. <list>
  10. <value>text/html;charset=UTF-8</value>
  11. </list>
  12. </property>
  13. </bean> -->
  14. <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
  15. <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
  16. <property name="features">
  17. <array>
  18. <value>WriteMapNullValue</value>
  19. <value>WriteNullStringAsEmpty</value>
  20. </array>
  21. </property>
  22. </bean>
  23. </mvc:message-converters>
  24. </mvc:annotation-driven>

测试类:

  1. public class User {
  2. private Long id;
  3. private String name;
  4.  
  5. public Long getId() { return id; }
  6. public void setId(Long id) { this.id = id; }
  7.  
  8. public String getName() { return name; }
  9. public void setName(String name) { this.name = name; }
  10. }
  11. public class Group {
  12. private Long id;
  13. private String name;
  14. private List<User> users = new ArrayList<User>();
  15.  
  16. public Long getId() { return id; }
  17. public void setId(Long id) { this.id = id; }
  18.  
  19. public String getName() { return name; }
  20. public void setName(String name) { this.name = name; }
  21.  
  22. public List<User> getUsers() { return users; }
  23. public void setUsers(List<User> users) { this.users = users; }
  24. }
  25.  
  26. import com.alibaba.fastjson.JSON;
  27.  
  28. Group group = new Group();
  29. group.setId(0L);
  30. group.setName("admin");
  31.  
  32. User guestUser = new User();
  33. guestUser.setId(2L);
  34. guestUser.setName("guest");
  35.  
  36. User rootUser = new User();
  37. rootUser.setId(3L);
  38. rootUser.setName("root");
  39.  
  40. group.getUsers().add(guestUser);
  41. group.getUsers().add(rootUser);
  42.  
  43. String jsonString = JSON.toJSONString(group);
  44. System.out.println(jsonString);
  45.  
  46. Group group2 = JSON.parseObject(jsonString, Group.class);

SpringMVC中使用:

  1. package com.dx.springlearn.hanlders;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. import java.util.Date;
  8. import java.util.List;
  9. import java.util.Map;
  10.  
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13.  
  14. import com.alibaba.fastjson.JSON;
  15.  
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.web.bind.annotation.ModelAttribute;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestMethod;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.servlet.ModelAndView;
  22.  
  23. import com.dx.springlearn.entities.Account;
  24. import com.dx.springlearn.entities.WSUserInfo;
  25.  
  26. @Controller
  27. public class TestModelData {
  28. private final String SUCCESS = "success";
  29.  
  30. @RequestMapping(name = "/postUser", method = RequestMethod.POST)
  31. public void postUser(String openid, String lng, String lat, HttpServletRequest request,
  32. HttpServletResponse response) {
  33. System.out.println("post user..." + openid + "," + lat + "," + lng);
  34.  
  35. }
  36.  
  37. @RequestMapping(name = "/getUserList", method = RequestMethod.GET)
  38. public void getUserList(String lng, String lat, HttpServletRequest request, HttpServletResponse response) {
  39. System.out.println("get user list...." + lat + "," + lng);
  40.  
  41. List<WSUserInfo> userItems = new ArrayList<>();
  42. for (int i = 0; i < 10; i++) {
  43. userItems.add(new WSUserInfo("openid" + i, "120.082" + i, "30.238" + i));
  44. }
  45.  
  46. try {
  47. //String jsonlist="[{\"openid\":\"openid0\",\"longitude\":\"120.0820\",\"latitude\":\"30.2380\"},{\"openid\":\"openid1\",\"longitude\":\"120.0821\",\"latitude\":\"30.2381\"}]";
  48. String jsonString = JSON.toJSONString(userItems);
  49.  
  50. PrintWriter out = response.getWriter();
  51. out.print(jsonString);
  52. out.flush();
  53. out.close();
  54. } catch (IOException e) {
  55. // TODO Auto-generated catch block
  56. e.printStackTrace();
  57. }
  58. }
  59. }
  60.  
  61. package com.dx.springlearn.entities;
  62.  
  63. public class WSUserInfo {
  64. private String openid;
  65. private String longitude;
  66. private String latitude;
  67.  
  68. public WSUserInfo(String openid, String longitude, String latitude) {
  69. super();
  70. this.openid = openid;
  71. this.longitude = longitude;
  72. this.latitude = latitude;
  73. }
  74.  
  75. public String getOpenid() {
  76. return openid;
  77. }
  78.  
  79. public void setOpenid(String openid) {
  80. this.openid = openid;
  81. }
  82.  
  83. public String getLongitude() {
  84. return longitude;
  85. }
  86.  
  87. public void setLongitude(String longitude) {
  88. this.longitude = longitude;
  89. }
  90.  
  91. public String getLatitude() {
  92. return latitude;
  93. }
  94.  
  95. public void setLatitude(String latitude) {
  96. this.latitude = latitude;
  97. }
  98. }

SpringMVC(十三):SpringMVC 与fastjson集成的更多相关文章

  1. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的坏习惯. 通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车 ...

  2. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  3. (转) Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    http://blog.csdn.net/u010648555/article/details/60767633 当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的 ...

  4. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  5. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  6. springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

    项目结构:   1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

  7. SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现

    一.用myEclipse初始化Web项目 新建一个web project: 二.创建包 controller        //控制类 service //服务接口 service.impl //服务 ...

  8. Springmvc使用阿里巴巴的fastjson传输到前台中文乱码的解决方案,他娘的大家都少制造垃圾,学习过程将会多么快乐

    弄了大概七八个小时吧 都他妈比的抄来抄去,一分一秒的去试错 最终参考这个问题解决了乱码的情况https://bbs.csdn.net/topics/392169549 412 需要在springmvc ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(十三)——SpringMVC入门程序(二)

    1.非注解的处理器映射器和适配器 1.1非注解的处理器映射器 前面我们配置的org.springframework.web.servlet.handler.BeanNameUrlHandlerMapp ...

随机推荐

  1. 【前端】input radio多选事件获取所有选中的id,radio样式优化可修改

    $("#all_button").on('click', function() { obj = document.getElementsByClassName("inpu ...

  2. linux性能调试之vmstat

    linux性能监控调优工具vmstat: vmstat:用于监控.显示系统运行过程中的虚拟内存/CPU/磁盘状态. 简单示例(时间间隔2s,监控2次): 重要字段解释: r 表示运行队列(等待运行的进 ...

  3. Flyway--数据库版本管理和控制工具

    1. Flyway 的主要任务是管理数据库的版本更新,在Flyway 中称每次数据库更新为一个migration ,为了更顺口,我们下面称之为数据库脚本.Flyway 支持SQL-based migr ...

  4. 用js写的时钟Demo

    css代码: <style type="text/css"> .a { width: 200px; height: 100px; position: absolute; ...

  5. Markdown 语法手册 (完整整理版)

    http://blog.csdn.net/witnessai1/article/details/52551362

  6. diy51单片机最小系统------从零件到51整体测试成功小白篇

    前言 因为现在网上资料很多,但是很多博主水平不一样,有很多时候,自己在网上找了很多资料,因为自己智商不够,有时候感觉很多关键性的东西没说清楚,导致解决不了问题.那现在就从一个小白的角度来记录自己做过的 ...

  7. Axure RP初学2

  8. 20162320刘先润第三周Bag类测试

    前言 以下内容是本周Bag代码的课后作业,要求是完成伪代码.产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面 测试步骤 1.首先对Bag类引用BagInterface的代码进 ...

  9. Java中三种比较常见的数组排序

    我们学习数组比较常用的数组排序算法不是为了在工作中使用(这三个算法性能不高),而是为了练习for循环和数组.因为在工作中Java API提供了现成的优化的排序方法,效率很高,以后工作中直接使用即可 . ...

  10. [USACO13JAN] Seating

    https://www.luogu.org/problem/show?pid=3071 题目描述 To earn some extra money, the cows have opened a re ...