`

SpringMVC 3使用Fastjson代替Jackson

 
阅读更多
Json解析教程(四.FastJson 的使用)
http://zyjustin9.iteye.com/blog/2020533

fastjson 基本使用方法 http://www.oschina.net/code/snippet_12_3495
1. [代码][Java]代码 
public class User {
    private Long id;
    private String name;
 
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
 
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

2. [代码][Java]代码
public class Group {
    private Long id;
    private String name;
    private List<User> users = new ArrayList<User>();
 
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
 
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
 
    public List<User> getUsers() { return users; }
    public void setUsers(List<User> users) { this.users = users; }
}

3. [代码]编码  
import com.alibaba.fastjson.JSON;
 
Group group = new Group();
group.setId(0L);
group.setName("admin");
 
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
 
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
 
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
 
String jsonString = JSON.toJSONString(group);
 
System.out.println(jsonString);

4. [代码]输出结果 
{
      "name":"admin",
      "id":0,"users":[
                             {"name":"guest","id":2},
                             {"name":"root","id":3}
                         ]
}

5. [代码]解码
Group group2 = JSON.parseObject(jsonString, Group.class);






原文:http://blog.icoolxue.com/springmvc-3%E4%BD%BF%E7%94%A8fastjson%E4%BB%A3%E6%9B%BFjackson/
为什么要使用Fastjson,其实原因不需要太多,喜欢就行。
我之所以要替换掉Jackson最主要的原因是Jackson在处理对象之前的循环嵌套关系时不便。
ps:什么是对象间的循环嵌套?比如A有一个List<B>,B对象里又有一个A对象,当然返回A对象的Json字符串时,如果是 Jackson就会发生异常,因为Jackson天生不具备处理这种关系的能力,而Fastjson正好具备了这种能力
(另,如果你用的是 Jackson,可以使用相应的注解来支持对象间的循环嵌套,具体是什么注解忘了,你可以Google一下Jackson循环嵌套就有很多答案)。
要使用Fastjson很简单,在spring-servler.xml(SpringMVC的配置文件)中将Jackson的配置去掉,换上下面的配置:

    <!-- 启用默认配置 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <!-- 配置Fastjson支持 -->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
                <property name="features">
                    <list>
                        <value>WriteMapNullValue</value>
                        <value>QuoteFieldNames</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

别忘了添加Fastjson的包,如果使用Maven,可使用如下设置(强烈建议使用Maven来管理你的项目):

<!-- Alibaba Fastjson框架 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.39</version>
</dependency>
分享到:
评论

相关推荐

    详解在springmvc中解决FastJson循环引用的问题

    此外,文章中提到的代码示例展示了在非Spring MVC环境中如何直接使用FastJson进行序列化操作,同时对比了开启和关闭循环引用检测的序列化结果。在这个例子中,定义了一个Student类,构建了一个Map,其中两个键("s1...

    springmvc+fastjson demo

    3. **Spring MVC 中使用 Fastjson**:在 Spring MVC 中,Fastjson 可用于接收 JSON 格式的请求参数,或者将处理结果转换成 JSON 响应。例如,使用 `@RequestBody` 注解接收 JSON 数据,使用 `@ResponseBody` 注解将...

    SpringMVC使用JSON的Jackson的jar包

    在上面的例子中,`getUser`方法返回一个`User`对象,SpringMVC会使用Jackson将其转换为JSON格式并返回给客户端。 总结,SpringMVC中的`@ResponseBody`配合Jackson库,使得开发人员可以方便地处理JSON数据。`...

    SpringMVC+fastjson+Swagger集成示例源码

    3. 使用Fastjson:在Controller层的处理方法中,使用Fastjson进行对象到JSON的转换,如`JSON.toJSONString(obj)`和`JSON.parseObject(jsonStr, Class)`。 4. 集成Swagger:在SpringMVC配置中添加Swagger的相关配置...

    springmvc 配置fastjson

    Spring MVC默认使用的是Jackson或Gson等库进行JSON转换,但我们可以自定义配置,用Fastjson替换它们。首先创建一个实现了`HttpMessageConverter`接口的Fastjson转换器类,例如`FastjsonHttpMessageConverter`。 3....

    SpringMVC配合Fastjson的内存马利用与分析1

    SpringMVC 配合 Fastjson 的内存马利用与分析 SpringMVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架,即使 用了 MVC 架构模式的思想,将 web 层进 行职责解耦,基于请求驱动指的...

    springMVC整合FastJson实现RestFul风格API

    这里,我们配置了FastJsonHttpMessageConverter,使得Spring MVC可以使用FastJson进行JSON的序列化和反序列化。 现在,我们可以创建RESTful风格的控制器。创建一个名为`UserController`的Java类,使用`@...

    SpringMVC +Spring4.3.12+jackson+文件上传

    在IT行业中,SpringMVC、Spring 4.3.12和Jackson是三个非常关键的框架,它们在构建高效、可扩展的企业级Web应用程序中起着至关重要的作用。本项目结合了这些技术,并实现了文件上传功能,使得开发者可以更方便地处理...

    SpringMvc+mybatis+fastJson+druid+resteasy...

    开发工具采用IDEA,用maven构建的项目,框架采用SpringMVC,数据库采用mysql与mybatis配合,数据格式采用阿里巴巴工具fastJson,数据源druid,另外还添加了resteasy中的功能

    jackson为springmvc3升级需要

    - Spring MVC 3.x使用的Jackson版本可能较旧,如2.2或2.4,而Spring MVC 4.x推荐使用更稳定的版本,如2.6或更高。 - 升级过程中,需要检查`pom.xml`或`build.gradle`文件,确保所有Jackson相关的依赖都被更新至...

    springMVC整合FastJson实现RestFul风格API涉及jar包

    - **使用FastJson配置**:可以通过FastJson提供的`JSONConfig`进行配置,比如设置日期格式、忽略空值等。 - **错误处理**:在处理JSON序列化和反序列化异常时,应捕获`JSONException`并给出适当的错误响应。 - **...

    springmvc-jackson-jar包集合

    3. `jackson-jr-all-2.4.3.jar`:Jackson Junior (jr) 是一个轻量级的JSON库,主要针对资源有限的环境。它提供了基本的JSON读写功能,但不支持复杂的映射功能。 4. `jackson-core-lgpl-1.8.5.jar`:这是Jackson核心...

    springMVC4-rest-jackson-jsonview-annotation.zip

    分享一个使用SpringMVC4 Rest 和Jackson的@JsonView注解集成的实例。@JsonView用来过滤JSON响应。Spring4.1开始直接支持@JsonView注解。要使用@JsonView,首先我们需要定义视图,我们可以定义多个视图。一个视图定义...

    springMVC+mybatis+jackson+memcached

    本示例项目"springMVC+mybatis+jackson+memcached"展示了如何整合四个关键的技术组件,来创建一个强大的后端架构。以下是对这些技术及其整合方式的详细说明: 1. **Spring MVC**:Spring MVC是Spring框架的一部分,...

    springmvc jackson jar 包

    要使用Spring MVC和Jackson处理JSON,首先需要在项目中引入Jackson的jar包。这通常通过Maven或Gradle等构建工具来完成,添加对应的依赖配置。例如,在Maven的pom.xml文件中,你可以加入以下依赖: ```xml ...

    spring-framework-4.3.8,Springmvc框架需要的jar包及相匹配jackson包,

    在实际开发中,你还可以自定义序列化和反序列化的行为,例如忽略某些字段、自定义日期格式等,只需在你的Java类上使用Jackson的注解即可。 总之,Spring Framework 4.3.8 和 Jackson 库的结合使用,能够帮助开发者...

    SpringMVC3 详细讲解

    SpringMVC3 详细讲解手册。大家可以学习哦

    Spring4+SpringMVC4+Hibernate4+Jackson2.5.0

    在IT行业中,Spring、SpringMVC、Hibernate和Jackson是四个非常关键的开源框架,它们各自在不同的领域发挥着重要作用,并且常被一起用于构建大型的企业级Java应用。本项目是基于Spring4、SpringMVC4、Hibernate4和...

    SpringMVC完整使用教程

    本教程将深入探讨 SpringMVC 的核心功能和使用方法。 ### 第 1 章 SpringMVC 概述 SpringMVC 旨在简化 Web 开发,通过解耦控制器、服务、业务逻辑和视图,提高代码的可测试性和可维护性。其核心组件包括 ...

Global site tag (gtag.js) - Google Analytics