【发布时间】:2012-10-16 07:53:29
【问题描述】:
我正在从 Android 中的 JSONObject 创建 JSONArray。我想要的 JSONArray 是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}]
但它似乎 [{"first_name":"cruz", “姓氏”:“胡安”, "middle_name":"sam"}]
如何按我想要的顺序排列数组?
谢谢...
【问题讨论】:
我正在从 Android 中的 JSONObject 创建 JSONArray。我想要的 JSONArray 是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}]
但它似乎 [{"first_name":"cruz", “姓氏”:“胡安”, "middle_name":"sam"}]
如何按我想要的顺序排列数组?
谢谢...
【问题讨论】:
1. prepare a LinkedHashMap object with elements
2. convert it to JSONObject
示例:
Map obj = new LinkedHashMap();
obj.put("a", "String1");
obj.put("b", new Integer(1));
obj.put("c", new Boolean(true));
obj.put("d", "String2");
JSONObject json = new JSONObject(obj);
下载这个库:
https://github.com/douglascrockford/JSON-java
将所有文件保存在项目的新包中
不要使用 org.json.JSONObject,而是使用您从下载的库中添加的 your.package.JSONObject。
现在打开 JSONObject.java 文件并在构造函数中将 HashMap() 更改为 LinkedHashMap()
public JSONObject(Map map)
这将使 JSONObject 按照您使用 put 输入值的顺序存储数据。
【讨论】:
你不能维护JSONObject响应的顺序,因为文档中已经提到了它本身。
对象是一组无序的名称/值对。
我遇到了同样的问题,然后我需要使用 gson 库或通过你的逻辑制作 json..
An object is an unordered set of name/value pairs.
祝你好运!
【讨论】: