【框架学习】springMVC转json输出(fastjson)

xiaoxiao2021-02-28  77

fastjson,,,是十分流行的json解析工具,阿里巴巴的开源产品,十分好用。


一。配置流程 (1). 需要在 pom.xml 中配置

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.31</version> </dependency>

(2). 在spring mvc的配置文件spring-mvc.xml,添加 以json形式输出。

<mvc:annotation-driven> <mvc:message-converters> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>

这样配置,返回的对象,会被自动转成json形式输出

(3). 在Controller 中返回对象,,(list,map集合也可以)

@RequestMapping("/get_users_json") @ResponseBody public Map<Integer, User> getUsers() { Map<Integer, User> users = new HashMap(); users.put(1,new User("刘备", 1)); users.put(2,new User("关羽", 2)); users.put(3,new User("张飞", 3)); users.put(4,new User("诸葛亮", 4)); return users; }

(4).返回结果如下:(格式化后)

{ "1": { "id": 1, "name": "刘备" }, "2": { "id": 2, "name": "关羽" }, "3": { "id": 3, "name": "张飞" }, "4": { "id": 4, "name": "诸葛亮" } }


二。注意细节 (1). 需要配置 注解 @ResponseBody,否则会springMVC转json输出出现404错误,, 原因是找不到返回的形式,spring 默认是返回字符串,转 ModelAndView。加上注解直接返回内容(即json)

(2). fastjson的bean配置,list中的顺序不能变,,可能会出现问题

<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> 鼠小 认证博客专家 一个萌汉子 未来的路是黑的,我不知道怎么走,我需要做的就是先走着。https://smallzheng.blog.csdn.net/
转载请注明原文地址: https://www.6miu.com/read-53802.html

最新回复(0)