一、FastJson简介
JSON 协议使用方便,越来越流行,JSON 的处理器有很多,这里我介绍一下FastJson,FastJson 是阿里的开源框架,被不少企业使用,是一个极其优秀的 Json 框架,是目前解析Json最快的工具。
FastJson的特点:
- FastJson速度快,无论序列化和反序列化,都是当之无愧的fast。
- 功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)。
- 零依赖(没有依赖其它任何类库)。
FastJson中的经常调用的方法:
- parse(String text):把JSON文本parse为JSONObject或者JSONArray。
- parseObject(String text):把JSON文本parse成JSONObject。
- parseArray(String text):把JSON文本parse成JSONArray。
- toJSONString(Object object):将JavaBean序列化为JSON文本。
对于不了解Json和Gson的伙伴,可以看一下我之前的文章。
其中SpringBoot中使用Gson处理JSON这篇文章中,还对目前主流的4种Json解析方案进行了对比。
二、学习FastJson
【第一步】可以使用SpringBoot中使用Gson处理JSON这篇文章中的项目。如果是使用这篇文章中的项目时,需要先去除Gson的依赖,再添加FastJson的依赖,如果不是这篇文章中的项目,直接添加FastJson依赖即可。
FastJson依赖代码如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
【第二步】对原有WebMvcConfig.java类中的方法删除,然后添加如下方法即可,代码如下:
package com.mango.fastjson.config;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebMvcConfig {
@Bean
FastJsonHttpMessageConverter fastJsonHttpMessageConverter(){
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setDateFormat("yyyy-MM-dd");
converter.setFastJsonConfig(fastJsonConfig);
return converter;
}
}
【运行结果】

注:此时Json数据格式正确,但是之前使用默认Json和Gson解析时,bean中属性显示的顺序和定义时是相同的,使用FastJson解析时,该顺序却混乱了。
因为FastJson序列化一个java bean,默认是根据fieldName的字母序进行序列化的,如果要按照自己想要的顺序排序时,需要在属性上添加注解@JSONField(ordinal=1),通过该注解的ordinal属性可以指定字段的顺序,这个特性需要1.1.42以上版本支持。
【拓展】
添加注解@JSONField(ordinal=1)后,默认会按照ordinal等于的数字来排序,默认是0,可以省略不写。
【User.java】
package com.mango.fastjson.bean;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
public class User {
@JSONField
private Integer id;
@JSONField(ordinal = 1)
private String username;
@JSONField(ordinal = 2)
private String address;
@JSONField(ordinal = 3)
private Date birthday;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
【运行结果】


本文介绍了如何在SpringBoot项目中使用FastJson处理JSON,强调了FastJson的速度和功能优势,并提供了添加FastJson依赖、配置及解决序列化时属性顺序混乱的方法。还提到了通过@JSONField(ordinal=1)注解来定制序列化顺序。

4059

被折叠的 条评论
为什么被折叠?



