fastjson.toJSONString字段排序

来源:互联网 发布:天下第一嫁网络番外 编辑:程序博客网 时间:2024/04/29 16:03

fastjson官方中文文档地址:https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5

由于fastjson.toJSONString默认按字符字母排列顺序输出的,在有些特殊场景下可能不满足我们的要求,需要定制。

官方文档中提到自定义序列化有三中方式,需要1.1.42以上版本才支持:

<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.35</version>
</dependency>

1、使用@JSONField配置
可以把@JSONField配置在字段或者getter/setter方法上,其中ordinal参数即顺序,值越小越靠前。例如:
 public class VO {
      @JSONField(ordinal = 1, name = "ID")
      private int id;
 @JSONField(ordinal = 2)
 private String name;
 }
或者
 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;}
 }
 
2、使用@JSONType配置
和JSONField类似,但JSONType配置在类上,而不是field或者getter/setter方法上。
@JSONType(orders:{"id","name"})
public class VO {
private int id;
private String name;
}


3、通过SerializeFilter定制序列化,但这个不能改变顺序,只能改变key或value或是否需要序列化