可能重复:按键排序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
响应的顺序,因为文档本身就是这样说明的。
对象是一个无序的名称/值对集合。
我曾经遇到过同样的问题,然后我需要使用gson库或按照您的逻辑制作json。
An object is an unordered set of name/value pairs.
祝你好运!