JSON数组如下:
[{"BMW": [], "OPEL": [], "Mercedes": []}]
,我想得到
[{"Mercedes": [], "OPEL": [], "BMW": []}]
我怎么能这样做呢?
由于JSONObjects不保持它们的顺序,你建立它们(与它在内存中的处理方式有关),你应该重构数据。
[{"BMW": [], "OPEL": [], "Mercedes": []}]
[{"BMW":[]}, {"OPEL":[]}, {"Mercedes":[]}]
这仍然不能马上帮助你,因为java中的JSONArray似乎没有reverse()方法:(
就像我评论的那样:以相反的顺序构建一个新的JSONArray:
JSONArray newJsonArray = new JSONArray()
for (int i = jsonArray.length()-1; i>=0; i--) {
newJsonArray.put(jsonArray.get(i));
}
一个小而最好的解决方案是将JSON数组以相反的顺序存储:
JSONArray array = response.getJSONArray("records");
for (int i = array.length()-1; i >= 0; i--) {
// Perform your regular JSON Parsing here
}
你不需要编辑/更改你的JSON
您有一个JSON对象,而不是数组。对象由键-值对组成,但这些对不以任何方式按键排序。事实上,顺序不重要——表示是一样的。
来自ECMAScript规范,复制如下:http://interglacial.com/javascript_spec/a-4.html
4.3.3 Object对象是Object类型的成员。它是一个无序的属性集合,每个属性都包含一个原语值、对象或功能。存储在类的属性中的函数对象被称为方法。