恢复将数据放入JSONObject的顺序

Kai*_*bhi 3 android json

我希望有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();
    }
Run Code Online (Sandbox Code Playgroud)

Arc*_*pgc 10

这是JSONObject的预期行为.根据其定义,它说:

一个对象作为一组无序的名称/值对

但是,如果您想要它被订购,请执行以下操作:

1. prepare a LinkedHashMap object with elements

2. convert it to JSONObject
Run Code Online (Sandbox Code Playgroud)

例:

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);
Run Code Online (Sandbox Code Playgroud)

编辑:

下载此库:

https://github.com/douglascrockford/JSON-java

将所有文件保存在项目的新包中

而不是使用org.json.JSONObject使用从下载的库中添加的your.package.JSONObject.

现已开放JSONObject.java文件和变化的HashMap()的LinkedHashMap()构造函数

public JSONObject(Map map)
Run Code Online (Sandbox Code Playgroud)