7

可能重复:
按键排序 JavaScript 对象

我正在从 android 中的 JSONObject 创建 JSONArray。我想成为的 JSONArray 是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}]

但它似乎 [{"first_name":"cruz", "last_name":"juan", "middle_name":"sam"}]

如何按照我想要的顺序排列阵列?

谢谢...

4

2 回答 2

6
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 输入值的顺序存储数据。

于 2012-10-26T06:02:17.317 回答
0

您无法维护JSONObject响应的顺序,因为它本身在文档中被提及。

对象是一组无序的名称/值对。

我遇到了同样的问题,然后我需要使用 gson 库或通过你的逻辑制作 json ..

An object is an unordered set of name/value pairs.

祝你好运。!

于 2012-10-26T05:03:41.530 回答