Fastjson 定制序列化
2022-05-05 13:54 更新
1. 简介
fastjson支持多种方式定制序列化。
- 通过@JSONField定制序列化
- 通过@JSONType定制序列化
- 通过SerializeFilter定制序列化
- 通过ParseProcess定制反序列化
2. 使用@JSONField配置
可以把@JSONField配置在字段或者getter/setter方法上。例如:
public class VO {
@JSONField(name="ID")
private int id;
}
或者
public class VO {
private int id;
@JSONField(name="ID")
public int getId() { return id;}
@JSONField(name="ID")
public void setId(int value) {this.id = id;}
}
更多看这里:JSONField
3. 使用@JSONType配置
和JSONField类似,但JSONType配置在类上,而不是field或者getter/setter方法上。
4. 通过SerializeFilter定制序列化
通过SerializeFilter可以使用扩展编程的方式实现定制序列化。fastjson提供了多种SerializeFilter:
- PropertyPreFilter 根据PropertyName判断是否序列化
- PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化
- NameFilter 修改Key,如果需要修改Key,process返回值则可
- ValueFilter 修改Value
- BeforeFilter 序列化时在最前添加内容
- AfterFilter 序列化时在最后添加内容
以上的SerializeFilter在JSON.toJSONString中可以使用。
SerializeFilter filter = ...; // 可以是上面5个SerializeFilter的任意一种。
JSON.toJSONString(obj, filter);
更多看这里: SerializeFilter
5. 通过ParseProcess定制反序列化
定制反系列化API ParseProcess
以上内容是否对您有帮助:
更多建议: