通过 alibaba 的 fastjson 库序列化 java bean 对象时,字段/属性如何在 JSON.toJSONString(bean)
指定顺序?
正确方法
fastjson 提供了 @JSONField
注解,结合注解中的 ordinal
指定字段的顺序,该属性从 1.1.42 版本开始支持。
public class User {
@JSONField(ordinal = 0)
private String name;
@JSONField(ordinal = 1)
private int sex;
@JSONField(ordinal = 2)
private String email;
......
}
示例:
import com.alibaba.fastjson.JSON;
public class JSONDemo {
public static void main(String[] args) {
User user = new User();
user.setName("knowledge");
user.setSex(1);
user.setEmail("dict@google.com");
System.out.println(JSON.toJSONString(user));
}
}
输出如下:
{"name":"knowledge","sex":1,"email":"dict@google.com"}