【问题标题】:Putting HashMap<String, object> in jsonobject将 HashMap<String, object> 放入 jsonobject
【发布时间】:2013-06-30 22:20:27
【问题描述】:

我构建了一个由 Hashmap 中定义的 nameValue 对组成的 json 对象

我遇到的问题是当我调用时:

jsonObject.put(hashmap);

它像这样添加 nameValue 对:

name=value 而不是name:value

有什么想法吗?

谢谢

【问题讨论】:

标签: java json hashmap


【解决方案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 构造函数,它涵盖了值是数组等情况
猜你喜欢
  • 2017-09-09
  • 2019-02-03
  • 2014-07-20
  • 2018-07-16
  • 2013-05-23
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多