将HashMap <String,object>放在jsonobject中

jon*_*ney 2 java json hashmap

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

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

jsonObject.put(hashmap);
Run Code Online (Sandbox Code Playgroud)

它添加了nameValue对,如下所示:

name=value 代替 name:value

有什么想法吗?

谢谢

Jon*_*uin 6

遍历 HashMap 并放入 jsonObject:

Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pairs = (Map.Entry)it.next();
    jsonObject.put(pairs.getKey(), pairs.getValue() );
}
Run Code Online (Sandbox Code Playgroud)


Mul*_*der 5

使用JSONObject构造函数.不要创建你自己,因为你可能会错过某些情况,比如值是一个数组.

JSONObject jsonObject = new JSONObject(hashMap);
Run Code Online (Sandbox Code Playgroud)

这实际上是一个完整的解决方案,因为它涵盖了角落情况,例如值是数组的地方.因此,它将使它成为JSONArray.

  • 讨厌挖掘旧答案,但这*不起作用*。OP 要求从 `HashMap&lt;String, Object&gt;` 转换为 `JSONObject`。您提到的构造函数仅适用于 `HashMap&lt;String, String&gt;`,如 [此处](/sf/answers/850911211/) (2认同)