Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

fastjson 序列化 json 字符串时字段/属性如何指定顺序

Java 笔记 Java 笔记


通过 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"}