【发布时间】:2013-06-30 22:20:27
【问题描述】:
我构建了一个由 Hashmap 中定义的 nameValue 对组成的 json 对象
我遇到的问题是当我调用时:
jsonObject.put(hashmap);
它像这样添加 nameValue 对:
name=value 而不是name:value
有什么想法吗?
谢谢
【问题讨论】:
-
你用的是什么库?
我构建了一个由 Hashmap 中定义的 nameValue 对组成的 json 对象
我遇到的问题是当我调用时:
jsonObject.put(hashmap);
它像这样添加 nameValue 对:
name=value 而不是name:value
有什么想法吗?
谢谢
【问题讨论】:
使用 JSONObject 构造函数。不要创建自己的,因为您可能会错过某些情况,例如值是数组时。
JSONObject jsonObject = new JSONObject(hashMap);
这实际上是一个完整的解决方案,因为它涵盖了极端情况,例如值是数组的情况。因此,它将为您制作为 JSONArray。
【讨论】:
HashMap<String, Object> 转换为JSONObject。您提到的构造函数仅适用于 HashMap<String, String> 明确here
遍历HashMap并放入jsonObject:
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
jsonObject.put(pairs.getKey(), pairs.getValue() );
}
【讨论】:
put 方法......奇怪