配置fastjon(Json处理工具包)
FastJson包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快;
支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;
第一种方法:
第一步:引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
第二步: 启动类继承extends WebMvcConfigurerAdapter
@SpringBootApplication
public class ApiCoreApp extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat
);
fastConverter.setFastJsonConfig(fastJsonConfig);
converters.add(fastConverter);
}
}
第二种方法:
第一步:依赖
在启动类中注入Bean : HttpMessageConverters
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
//1. 需要定义一个converter转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2. 添加fastjson的配置信息,比如:是否需要格式化返回的json的数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3. 在converter中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
在实体类中可以加入定制Json格式化:
public class User { private int id; private String name; private String password; @JSONField(format="yyyy-MM-dd: HH:mm") //yyyy年MM月dd: HH:mm"中文会乱码 private java.util.Date createTime;
FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成:
public static final Objectparse(Stringtext); //把JSON文本parse为JSONObject或者JSONArray
public static final JSONObjectparseObject(Stringtext); //把JSON文本parse成JSONObject
public static final T parseObject(String text, Classclazz); //把JSON文本parse为JavaBean
public static final JSONArrayparseArray(Stringtext); //把JSON文本parse成JSONArray
public static final List parseArray(String text, Classclazz); //把JSON文本parse成JavaBean集合
public static final StringtoJSONString(Objectobject); //将JavaBean序列化为JSON文本
public static final StringtoJSONString(Objectobject, boolean prettyFormat); //将JavaBean序列化为带格式的JSON文本
public static final ObjecttoJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。