JAVA中遍历JSONObject不能按原顺序遍历
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中遍历JSONObject不能按原顺序遍历相关的知识,希望对你有一定的参考价值。
现已有一个JSONObject,里面包含了KEY-VALUE,但我并不知道KEY。
我的做法是用迭代器Iterator来遍历,通过JSONObject.keys()来得到一个Iterator实例。
——————
遍历的问题解决了,但还有一个问题这样的遍历结果不是按原JSONObject中的顺序遍历的,想知道有没有什么方法能按原顺序遍历呢?
可以重写原码,不过不推荐,如下:
要使输出是有序的,可以用LinkedHashMap来替换HashMap。
修改org.json.JSONObject的构造函数,
public JSONObject()
this.map = new LinkedHashMap(); //new HashMap();
可能会对JSON 函数的执行效率有所影响。追问
嘿嘿,这个方法之前我也看到过,他这得改源码,没有试过。
问题现在自己解决了,还是谢谢你
请问还有什么办法?
参考技术A 当你取的时候相当于一个map,而map是无序的JAVA中按原顺序遍历JSONObject
Map<String, Object> rmap = new Gson().fromJson(resultStr, LinkedHashMap.class);
如题,就是这么解决的 Gson 是个好东西
ObjectMapper objectMapper = new ObjectMapper();
Map map = objectMapper.readValue(resultStr,LinkedHashMap.class); 参考技术A 你是要在客户端用js来做,还是服务端用java做? 参考技术B 不明所以!!!!!!!!!! 参考技术C 哦,我知道了.大家也都知道了
以上是关于JAVA中遍历JSONObject不能按原顺序遍历的主要内容,如果未能解决你的问题,请参考以下文章
在Java中遍历HashMap时如何确保键的顺序不能改变? [复制]