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

来源:互联网 发布:淘宝上卖什么比较热销 编辑:程序博客网 时间:2024/05/24 06:33

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>
原创粉丝点击