JsonSerializer字段顺序(不要按字母顺序排列) - Java

时间:2012-07-27 02:31:33

标签: field alphabetical jsonserializer

我正在使用JsonSerializer将Object转换为JSON String,但顺序错误。属性按字母顺序自动排序,但我希望它们按照它们在类中列出的顺序排列(例如“endPoint”不应出现在“startPoint”之前)。

当我打电话给JsonSerializer时。我只看到4种方法(toJava或toJson)。我尝试了包含订单,但它不起作用/我做得不对。我这样做的方式是这样的:

return new String[]{"errorDescription", "searchResultRecord.billOfLadingNumber", 
"searchResultRecord.bookingNumber", "searchResultRecord.advancedManifest", 
"searchResultRecord.inboundCustomsClearanceStatus", "searchResultRecord.cargoReleaseStatus", "searchResultRecord.freightChargeReleaseStatus", 
"searchResultRecord.container.containerNumber", "searchResultRecord.container.latestEvent.event", 
"searchResultRecord.container.latestEvent.location", "searchResultRecord.container.latestEvent.time"};

如您所见,包含了obj.obj.attr部分。但是当我尝试运行此代码时,我只在输出字符串中看到“errorDescription”。然后我尝试了没有属性的“searchResultRecord”,但它只显示了输出中的2个属性:x

知道如何修改订单以使其不按字母顺序排列吗?在线的所有示例似乎都是来自该类的旧版本,具有更易于访问的方法〜感谢任何信息。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用

@XmlType(propOrder={"startPoint", "endPoint"})

在您定义为@XmlRootElement的课程上。这些属性和您想要的任何其他属性将按照您在propOrder上的定义进行排序。