Fastjson 自訂序列化
Fastjson 自訂序列化
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 filter = ...; // 可以是上面5个SerializeFilter的任意一种。 JSON.toJSONString(obj, filter);
更多看這裡: SerializeFilter
#5. 透過ParseProcess客製化反序列化
客製化反系列化API ParseProcess