作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个带有状态的 LinkedHashMap
。
Map<String, String> stateMap = new LinkedHashMap<String, String>();
// ...
我正在基于它创建一个 JSONObject
。
JSONObject json = new JSONObject();
json.putAll(stateMap);
但是,这些条目似乎是无序的。我想在 JSONObject
中保留 LinkedHashMap
的顺序。我怎样才能做到这一点?
最佳答案
与 JSONObject
不同,JSONArray
是一个有序的值序列。所以如果你想保留 map 的顺序,你可以用两个键构造你的 json
对象:
第一个键可以称为 data 并将像这样保存您的 stateMap
数据:
json.element('data', stateMap)
第二个键可以称为 keys,它将是一个 JSONArray 对象,它将保存您的 map 键的有序列表,如下所示:
JSONArray array = new JSONArray();
array.addAll(stateMap.keySet())
json.put('keys', array)
更多信息:
关于java - 如何在 JSONObject 中保留 LinkedHashMap 排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429786/
我是一名优秀的程序员,十分优秀!