3

我想要将 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();
    }
4

4 回答 4

10

这是 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)
于 2012-10-01T11:31:56.600 回答
1

您可以将该名称放在 CustomerID 行之前以满足您自己的需要,但这根本不会产生影响。因为json中的数据是以键值对的形式提取出来的。它独立于其放置的顺序。

于 2012-10-01T11:15:48.670 回答
0

您可以使用累积()

请参阅android 开发人员参考

于 2013-07-01T10:35:39.613 回答
0

一个有用的答案在这里

Gson如果你的朋友。这会将有序映射打印成有序的 JSON 字符串。

我使用的是最新版本的 Gson(2.3.1),您可以通过本文底部的以下选项下载它。

import java.util.LinkedHashMap;
import java.util.Map;

import com.google.gson.Gson;

public class OrderedJson {
    public static void main(String[] args) {
        // Create a new ordered map.
        Map<String,String> myLinkedHashMap = new LinkedHashMap<String, String>();

        // Add items, in-order, to the map.
        myLinkedHashMap.put("1", "first");
        myLinkedHashMap.put("2", "second");
        myLinkedHashMap.put("3", "third");

        // Instantiate a new Gson instance.
        Gson gson = new Gson();

        // Convert the ordered map into an ordered string.
        String json = gson.toJson(myLinkedHashMap, LinkedHashMap.class);

        // Print ordered string.
        System.out.println(json); // {"1":"first","2":"second","3":"third"}
    }
}

依赖选项 Maven

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3.1</version>
</dependency>

摇篮

compile 'com.google.code.gson:gson:2.3.1'

或者您可以访问Maven Central以获取更多下载选项。

于 2016-06-15T20:15:34.183 回答