考虑下面的代码:
JSONObject json = new JSONObject();
json.put("one", 1);
json.put("two", 2);
json.put("three", 3);
如果我打印 jsonobject 它会像这样打印
{"three":"1","two":"2","one":"1"}
但我想要这样的。
{"one":"1","two":"2","three":"3"}
请帮忙。提前致谢。
文档位于http://www.json.org/javadoc/org/json/JSONObject.html http://www.json.org/javadoc/org/json/JSONObject.html says:
JSONObject 是名称/值对的无序集合。
换句话说,对象的属性是按名称访问的,而不是按位置访问的,并且默认的序列化形式不保证任何特定的顺序。
严格定位仅适用于数组:
JSONArray json = new JSONArray();
json.put("1");
json.put("2");
json.put("3");
json.toString(); // results in ["1", "2", "3"]
解决您的问题的最简单的解决方法是使用排序键() http://www.json.org/javadoc/org/json/JSONObject.html#sortedKeys()方法并通过逐个键迭代 JSONObject,按照所需的顺序手动生成 JSON 字符串。实施定制比较器 http://download.oracle.com/javase/1.4.2/docs/api/java/util/Comparator.html也可能有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)