首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON处理linkedHashMap

JSON处理linkedHashMap
EN

Stack Overflow用户
提问于 2013-10-09 06:35:57
回答 2查看 3.2K关注 0票数 4

在我的服务包中,我返回一个linkedHashMap并在控制器中将它转换为JSON,例如:

代码语言:javascript
复制
JSONObject jsonObject = new JSONObject();
jsonObject.put("dataObject", JSONObject.fromObject(linkedHashMap));
return jsonObject.toString();

当将linkedHashMap转换为JSON时,为什么顺序会很混乱呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-09 07:14:13

不能对JSON对象中的元素进行排序。

来自http://www.json.org/的JSON规范

对象是一组无序的名称/值对。

票数 0
EN

Stack Overflow用户

发布于 2013-10-09 07:44:43

我想您正在使用吉森利卜json-lib在内部实现java.util.HashMap来存储映射值。因此,即使您在开始时有一个LinkedHashMap,当您在jsonObject中使用它时,您也失去了排序。

如果订单对您很重要,我建议您使用ArrayList;或者您可以将映射条目绑定到包含一些排序信息的键上。

编辑:如Maxim所指出的,JSON规范显然不需要有序地图。与有序的替代方案相比,java.util.HashMap提供了许多性能优势,因此在排序不重要的情况下使用更频繁。

正如JavaDocs所说:

这个类不能保证映射的顺序;特别是,它不能保证随着时间的推移,顺序将保持不变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19264808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档