2012-07-27 235 views
0

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

当我打电话给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

任何想法如何修复顺序,使其不按字母顺序?所有在线示例似乎都来自该类的较旧版本,并提供更方便的方法〜感谢您的任何信息。

回答

2

您可以尝试在你定义为@XmlRootElement类使用

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

。这些属性和任何其他你想要的将按照你在propOrder上定义的排序。