我正在使用http://www.json.org/java/index.html提供的JSON库将我拥有的json字符串转换为CSV.但我遇到的问题是,转换后键的顺序会丢失.
这是转换代码:
JSONObject jo = new JSONObject(someString);
JSONArray ja = jo.getJSONArray("items");
String s = CDL.toString(ja);
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
这是"someString"的内容:
{
"items":
[
{
"WR":"qwe",
"QU":"asd",
"QA":"end",
"WO":"hasd",
"NO":"qwer"
},
]
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
WO,QU,WR,QA,NO
hasd,asd,qwe,end,qwer
Run Code Online (Sandbox Code Playgroud)
虽然我期望保持键的顺序:
WR,QU,QA,WO,NO
qwe,asd,end,hasd,qwer
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用这个库得到这个结果吗?如果没有,是否有任何其他库可以提供保持结果中键的顺序的功能?
我使用以下JSON使用JavaScript创建一些复选框.
{"5":"5.5\" x 8.5\"",
"11":"7\" x 10\"",
"4":"8.5\" x 11\"",
"8":"8.5\" x 14\"",
"12":"10\" x 7\"",
"2":"11\" x 8.5\"",
"10":"11\" x 17\"",
"6":"14\" x 8.5\"",
"9":"17\" x 11\""})
Run Code Online (Sandbox Code Playgroud)
用于创建这些复选框的JavaScript是:
for(id in dimensions) {
$("#the_dimensions").append('<label class="checkbox">' +
'<input type="checkbox" class="dimensions-filter" value="' + id + '">' +
dimensions[id] + '</label>');
}
Run Code Online (Sandbox Code Playgroud)
在Firefox上,将根据JSON对象中的顺序创建复选框.因此,"5":"5.5 \"x 8.5 \""成为第一个元素,"11":"7 \"x 10 \""成为第二个元素,依此类推.
但是在Chrome和IE上,JSON对象会按照键的升序自动排序.因此,"2":"11"x 8.5 \""成为第一个元素,"4":"8.5 \"x 11 \""成为第二个元素,依此类推.
如何在Chrome和IE上禁用自动排序?