将 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&lt;String, Object&gt; 转换为JSONObject。您提到的构造函数仅适用于 HashMap&lt;String, String&gt; 明确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 object对象中的map取值问题。。。

Java Spark 如何将 JavaPairRDD<HashSet<String>, HashMap<String, Double>> 保存到文件中?

如何将 Hashmap<String,List<Items>> 膨胀到 Recyclerview