我有一个Map,它包含String键和String和整数值.
我将值放入地图中,如下所示:
Map map = new LinkedHashMap();
map.put("b",1);
map.put("a",2);
在此之后,我将地图添加到List中:
List out = new LinkedList();
out.add(map);
之后,我创建了一个JSONObject并将List放入其中:
org.json.JSONObject json = new org.json.JSONObject();
json.put("header","header");
json.put("array",out);
但如果我这样做,我会看到这个json结构:
{“header”:”header”,“array”:[{“a”:2,”b”:1}]}
但我想看到:
{“header”:”header”,”array”:[{“b”:1,”a”:2}]}
我哪里做错了?也许这不是正确的方法?
最佳答案
如果您想保留订单,则不应使用org.json库,因为它将数据存储在HashMap中,因此您要保留的任何订单都将被忽略.用org.json解决这个问题并不容易.我建议你使用另一个JSON库(GSON,Jackson,minimal-json等).几乎任何其他库都保留了像LinkedHashMap这样的插入顺序.