android - 恢复数据放入 JSONObject 的顺序

标签 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();
    }

最佳答案

这是 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/

相关文章:

Android Loaders 生命周期,或 : will onStopLoading() always called before onReset()?

javascript - D3v4 timeParse 始终返回 null

javascript - 本地 JSON 数据到 URL 上的 getJSON

android - 如果特定列值重复,则行并集

android - android studio中意外的顶级异常

android - 创建一个低优先级的 Android 服务

Android 仅将 View 旋转 90 度

java - JSON.parse() 等效于 Java 的 mongo 驱动程序 3.x

c++ - sigma.js 兼容的 json 文件是否有特定格式?

java - 如何使用纯 Java 代码读取 JSON 字符串(不使用任何 Jar 文件)