0

让我们举这个例子。我有一个 pojo 类如下。

public class MyRecord{
    private String name;
    private String id;

    //constructors and getters,setters
}

当我得到上面的 toJson(new MyRecord("MyName","myId") 输出时,我可以得到。

{
  "name": "MyName",
  "id": "123" 
}

我继承了一个如下添加日期时间。

public class MyRecordWithDateTime extends MyRecord{
        private String DateTime;           

        //constructors and getters,setters
}

所以当我打电话给 toJson(new MyRecordWithDateTime("2016-01-01", "MyName", "myId"))

输出是这个

{
  "name": "MyName",
  "id": "123",
  "dateTime": "2016-01-01" 
}

但我实际上需要如下。(日期时间应该排在第一位。)

{          
  "dateTime": "2016-01-01", 
  "name": "MyName",
  "id": "123"
}

有没有办法通过保留继承来做到这一点?

4

3 回答 3

1

JSON集合中的字段/成员/属性没有顺序,就这个JSON数据结构而言,“顺序”无关紧要。

我可以想象您关心订单的唯一原因是出于打印/演示目的。在这种情况下,我建议您自己手动构建 JSON 字符串。

于 2016-08-10T08:07:56.727 回答
1

在将其放入 JSON 文件之前,您可以尝试创建一个有序列表(LinkedList、ArrayList 或类似的东西),然后根据需要对其进行排序,然后将其放入 JSON 中。

但显然,存在比我更好的想法!

但事实是:JSON 不需要排序!您只需使用 getter,它就会找到与键关联的值!哪怕是最后一个位置。

于 2016-08-10T07:33:18.070 回答
1

也许有点晚了,但以防万一有这个注释@JsonPropertyOrder

于 2021-02-12T01:25:52.303 回答