怎么配置fastjson序列化
时间: 2023-11-05 12:04:18 浏览: 104
springboot 使用spring cache缓存 和 使用fastjson配置redis系列化
在Spring Boot中使用Fastjson作为JSON序列化器,首先需要添加Fastjson的依赖项,可以在pom.xml文件中添加以下依赖项:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
```
然后,在Spring Boot应用程序的配置文件中,可以使用以下属性来配置Fastjson的行为:
```properties
# 配置Fastjson为默认的JSON序列化器
spring.http.converters.preferred-json-mapper=fastjson
# 配置Fastjson的特性
spring.fastjson.serializer.xxx=yyy
```
其中,xxx可以为以下任意一个特性:
| 属性 | 描述 |
| ---- | ---- |
| writeMapNullValue | 是否输出值为null的字段,默认为false |
| writeNullListAsEmpty | 是否输出空的list,默认为false |
| writeNullStringAsEmpty | 是否输出空的字符串,默认为false |
| writeNullBooleanAsFalse | 是否输出null的布尔值,默认为false |
| writeDateUseDateFormat | 是否使用日期格式化,默认为false |
| notWriteRootClassName | 是否输出类名,默认为false |
| sortField | 是否按照字段名称排序后输出,默认为false |
| indentOutput | 是否缩进输出,默认为false |
| quoteFieldNames | 是否输出key作为双引号包围的字符串,默认为true |
| ignoreNonFieldGetter | 是否忽略getter方法的返回值,默认为false |
| ignoreErrorGetter | 是否忽略getter方法的错误,默认为false |
其中,yyy为相应的特性值。例如:
```properties
# 配置Fastjson为默认的JSON序列化器
spring.http.converters.preferred-json-mapper=fastjson
# 配置Fastjson的特性
spring.fastjson.serializer.writeMapNullValue=true
spring.fastjson.serializer.writeNullListAsEmpty=true
spring.fastjson.serializer.writeNullStringAsEmpty=true
spring.fastjson.serializer.writeNullBooleanAsFalse=true
spring.fastjson.serializer.writeDateUseDateFormat=true
spring.fastjson.serializer.notWriteRootClassName=true
spring.fastjson.serializer.sortField=true
spring.fastjson.serializer.indentOutput=true
spring.fastjson.serializer.quoteFieldNames=false
spring.fastjson.serializer.ignoreNonFieldGetter=true
spring.fastjson.serializer.ignoreErrorGetter=true
```
除了上述属性外,还可以使用@JSONField注解来控制序列化的行为。例如:
```java
public class MyObject {
@JSONField(name = "myProperty", serialize = false)
private String myProperty;
// getters and setters
}
```
这将使Fastjson序列化时将Java对象属性名“myProperty”映射到JSON属性名“myProperty”,并且忽略该属性的序列化。
阅读全文