Jackson,Fastjson详细教程

简介: 1.Jackson导入Maven依赖:


1.Jackson


导入Maven依赖:


<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.14.0</version>
</dependency>


编写pojo类:


@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}


直接返回前端字符串,格式如下:


@ResponseBody  // 不会走视图解析器,会直接返回一个字符串
@RequestMapping("/j1")
public String json() {
    User user = new User(1, "dahezhiquan", 18);
    return user.toString();
}



但这不是我们想要的格式,前端希望得到一个json格式的字符串

通过Jackson,我们可以很容易的将一个字符串转化为json的格式:

实例:


@ResponseBody  // 不会走视图解析器,会直接返回一个字符串
@RequestMapping("/j1")
public String json1() throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    User user = new User(1, "dahezhiquan", 18);
    String s = mapper.writeValueAsString(user);
    return s;
}



2.解决Jackson的中文乱码问题


springmvc-servlet.xml添加对于中文的支持即可:

如下的配置式固定不变的:


<!--JSON乱码问题-->
<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg value="UTF-8"/>
        </bean>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper">
                <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                    <property name="failOnEmptyBeans" value="false"/>
                </bean>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>


如果希望类中所有的方法不走视图解析器,直接返回一个字符串,可以使用@RestController注解标识类


3.多种样式的json


传递多个对象使用列表:

实例:


@ResponseBody  // 不会走视图解析器,会直接返回一个字符串
@RequestMapping("/j1")
public String json1() throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    ArrayList<User> users = new ArrayList<>();
    User user1 = new User(1, "大河1", 18);
    User user2 = new User(2, "大河2", 18);
    User user3 = new User(3, "大河3", 18);
    users.add(user1);
    users.add(user2);
    users.add(user3);
    return mapper.writeValueAsString(users);
}



4.Fastjson


导入Maven依赖:


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


使用实例:


@ResponseBody
@RequestMapping("/j2")
public String json2() {
    ArrayList<User> users = new ArrayList<>();
    User user1 = new User(1, "大河1", 18);
    User user2 = new User(2, "大河2", 18);
    User user3 = new User(3, "大河3", 18);
    users.add(user1);
    users.add(user2);
    users.add(user3);
    return JSON.toJSONString(users);
}


目录
相关文章
|
JSON fastjson 数据格式
fastjson基本使用
fastjson基本使用
80 0
|
JSON fastjson Java
FastJson使用技巧
FastJson使用技巧
|
JSON Java fastjson
FastJson基本使用
FastJson基本使用
233 0
FastJson基本使用
|
fastjson Java
fastjson的使用
fastjson的使用
147 0
|
XML JSON Java
Jackson快速入门
Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多。
1533 0
|
XML JSON 缓存
关于 FastJson
因为公司提供的基础框架使用的是 FastJson 框架、而部门的架构师推荐使用 Jackson。所以特此了解下 FastJson 相关的东西。
694 0
|
SQL JSON 缓存
fastjson学习笔记
JSON相信大家对他也不陌生了,前后端交互中常常就以JSON来进行数据交换。而有的时候,我们也会将JSON直接保存在数据库中。
310 0
fastjson学习笔记
|
JSON 前端开发 JavaScript
JSON解析教程(Gson、FastJson、Jackson)
JSON解析教程(Gson、FastJson、Jackson)
JSON解析教程(Gson、FastJson、Jackson)
|
JSON 缓存 安全
干掉 fastjson,我们用 Jackson!
工程里大量使用了fastjson作为序列化和反序列化框架,甚至ORM在处理部分字段也依赖fastjson进行序列化和反序列化。那么作为大量使用的基础框架,为什么还要进行替换呢?
干掉 fastjson,我们用 Jackson!