可能重复:
按键排序 JavaScript 对象
我正在从 android 中的 JSONObject 创建 JSONArray。我想成为的 JSONArray 是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}]
但它似乎 [{"first_name":"cruz", "last_name":"juan", "middle_name":"sam"}]
如何按照我想要的顺序排列阵列?
谢谢...
可能重复:
按键排序 JavaScript 对象
我正在从 android 中的 JSONObject 创建 JSONArray。我想成为的 JSONArray 是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}]
但它似乎 [{"first_name":"cruz", "last_name":"juan", "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.
祝你好运。!