我想在这段代码中插入 json,但它的工作方式有所不同!我首先想要 CustomerID
,然后是 Name
,但是这个 json 首先给出 Name
,然后是 CustomerID
。我已经按照我的意愿插入了 json,但为什么它给出不同的结果请帮助我..
JSONObject json = new JSONObject();
try {
json.put("CustomerID", "069C21F1-EE87-4FB4-A129-478AEAA454FF");
json.put("Name", "Name_" + (int) Math.random() * 1000);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最佳答案
这是 JSONObject 的预期行为。根据它的定义,它说:
一个对象作为一组无序的名称/值对
但是,如果您希望订购它,请执行以下操作:
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)
关于android - 恢复数据放入 JSONObject 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12672180/