【发布时间】:2011-06-16 00:15:16
【问题描述】:
似乎Gson.toJson(Object object) 生成带有随机分布的对象字段的 JSON 代码。有没有办法以某种方式修复字段顺序?
public class Foo {
public String bar;
public String baz;
public Foo( String bar, String baz ) {
this.bar = bar;
this.baz = baz;
}
}
Gson gson = new Gson();
String jsonRequest = gson.toJson(new Foo("bar","baz"));
字符串jsonRequest可以是:
-
{ "bar":"bar", "baz":"baz" }(正确) -
{ "baz":"baz", "bar":"bar" }(顺序错误)
【问题讨论】:
-
为什么序列相关?这表明解析 JSON 的工具有误。
-
我也想知道为什么。但服务器是一个 .NET 应用程序。该应用程序的作者说他们需要名为“__type”(它指向模式)的字段排在首位。
-
我会请求 .NET 应用程序作者放弃此要求并实施更强大的 JSON 处理。
-
如果你有机会,你也可以用 JSON 规范来打击 .NET 应用程序的作者,关于 JSON 对象是什么,它清楚地指出,“一个对象是零或零的无序集合更多名称/值对..." [ietf.org/rfc/rfc4627.txt?number=4627] 因此,他们的应用程序/消息传递 API 不符合 JSON 规范。 (这样的论点往往特别适合那些花哨的“企业架构师”。)
-
也许如果你想要元数据在一开始你会想要这个。
标签: java json serialization gson