如何在安卓中对JSON对象的键进行排序/排列?

7
可能重复:按键排序JavaScript对象 我正在android中从JSONObject创建JSONArray。 我想要的JSONArray是: [{"last_name":"cruz", "first_name":"juan", "middle_name":"sam"}] 但它出现了 [{"first_name":"cruz", "last_name":"juan", "middle_name":"sam"}] 如何排列数组以符合我的要求?
谢谢...
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方法输入的值的顺序来存储数据。

0

你无法维护JSONObject响应的顺序,因为文档本身就是这样说明的。

对象是一个无序的名称/值对集合。

我曾经遇到过同样的问题,然后我需要使用gson库或按照您的逻辑制作json。

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

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接