将 HashMap<String, object> 放入 jsonobject
Posted
技术标签:
【中文标题】将 HashMap<String, object> 放入 jsonobject【英文标题】:Putting HashMap<String, object> in jsonobject 【发布时间】:2013-06-30 22:20:27 【问题描述】:我构建了一个由 Hashmap 中定义的 nameValue 对组成的 json 对象
我遇到的问题是当我调用时:
jsonObject.put(hashmap);
它像这样添加 nameValue 对:
name=value
而不是name:value
有什么想法吗?
谢谢
【问题讨论】:
你用的是什么库? 好像是这个:json.org/javadoc/org/json/JSONObject.html 【参考方案1】:使用 JSONObject 构造函数。不要创建自己的,因为您可能会错过某些情况,例如值是数组时。
JSONObject jsonObject = new JSONObject(hashMap);
这实际上是一个完整的解决方案,因为它涵盖了极端情况,例如值是数组的情况。因此,它将为您制作为 JSONArray。
【讨论】:
讨厌挖掘一个旧答案,但这确实不工作。 OP 要求将HashMap<String, Object>
转换为JSONObject
。您提到的构造函数仅适用于 HashMap<String, String>
明确here【参考方案2】:
遍历HashMap并放入jsonObject:
Iterator it = mp.entrySet().iterator();
while (it.hasNext())
Map.Entry pairs = (Map.Entry)it.next();
jsonObject.put(pairs.getKey(), pairs.getValue() );
【讨论】:
这玩意儿。为什么jsonObject.put不自动处理? @jonney 我不确定,文档不包含任何只有一个参数的put
方法......奇怪
存在一个内置的 JSONObject 构造函数,它涵盖了值是数组等情况以上是关于将 HashMap<String, object> 放入 jsonobject的主要内容,如果未能解决你的问题,请参考以下文章
(精华)将json数组和对象转换成List和Map(小龙哥和牛徳鹤的对话)
如何将 Hashmap 中的值转换为 List<String>
将 HashMap<String, object> 放入 jsonobject
Java Spark 如何将 JavaPairRDD<HashSet<String>, HashMap<String, Double>> 保存到文件中?