我正在从android中的JSONObject创建JSONArray。我想成为的JSONArray是: 的 [{ “last_name的”: “克鲁兹”, “FIRST_NAME”: “娟”, “middle_name”: “SAM”}]
但它出现了 的 [{ “first_name的”: “克鲁兹”, “姓氏”:“娟”, “middle_name”: “SAM”}]
如何按照我想要的顺序排列数组呢?
...谢谢
答案 0 :(得分:5)
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。
输入值的顺序存储数据答案 1 :(得分:0)
您无法维持JSONObject
响应的顺序,因为它本身已在文档中提及。
对象是一组无序的名称/值对。
我遇到了同样的问题然后我需要使用gson库或者通过你的逻辑制作json ..
An object is an unordered set of name/value pairs.
祝你好运。!