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);
}


目录
相关文章
|
6月前
|
JSON fastjson 数据格式
fastjson基本使用
fastjson基本使用
42 0
|
存储 缓存 JSON
fastjson2为什么这么快
fastjson2 提升速度的核心技术
75666 6
fastjson2为什么这么快
|
JSON fastjson Java
FastJson使用技巧
FastJson使用技巧
|
fastjson Java
fastjson的使用
fastjson的使用
112 0
|
JSON Java fastjson
FastJson基本使用
FastJson基本使用
189 0
FastJson基本使用
|
JSON fastjson Java
Fastjson 使用
fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean序列化为JSON字符串,也可以从 JSON 字符串反序列化到 JavaBean。 功能完备: 支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。 下载 jar包 或者配置 maven 依赖:
2171 0
|
XML JSON 缓存
关于 FastJson
因为公司提供的基础框架使用的是 FastJson 框架、而部门的架构师推荐使用 Jackson。所以特此了解下 FastJson 相关的东西。
653 0
|
SQL JSON 缓存
fastjson学习笔记
JSON相信大家对他也不陌生了,前后端交互中常常就以JSON来进行数据交换。而有的时候,我们也会将JSON直接保存在数据库中。
262 0
fastjson学习笔记
|
XML JSON Java
Jackson快速入门
Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多。
1486 0
|
fastjson Java
fastjson为何使用TypeReference?(上)
fastjson为何使用TypeReference?
865 0
fastjson为何使用TypeReference?(上)