toJson()时是否可以更改属性的顺序?

时间:2016-08-10 07:28:18

标签: java json pojo to-json

我们来看这个例子。我有一个pojo课程如下。

$ php test.php | pbcopy
$ pbpaste | someotherprogram

当我得到toJson(新的MyRecord(“MyName”,“myId”)输出时,我可以得到。

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

    //constructors and getters,setters
}

我继承了以下一项来添加dateTime。

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

所以当我打电话给Json时(新的MyRecordWithDateTime(“2016-01-01”,“MyName”,“myId”))

输出就是这个

public class MyRecordWithDateTime extends MyRecord{
        private String DateTime;           

        //constructors and getters,setters
}

但实际上我需要如下。 (dateTime应该先到。)

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

无论如何都要保持继承吗?

3 个答案:

答案 0 :(得分:1)

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

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

但事实是:JSON不需要排序!您只需使用getter,它就会找到与键相关的值!即使它处于最后位置。

答案 1 :(得分:1)

JSON集合中的字段/成员/属性没有订单,就这个JSON数据结构而言," order"无所谓。

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

答案 2 :(得分:1)

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