我在这里找到了一些关于如何处理这个异常的答案,但是没有解释为什么会首先发生这种情况。我有以下代码:为什么JSONObject的put方法抛出JSONException?
for (Map.Entry<String, Double> entry: qosMap.entrySet()) {
JSONObject qosEntry = new JSONObject();
try {
qosEntry.put(entry.getKey(), entry.getValue());
} catch (JSONException ex) {
Logger.getLogger(JSONUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
的qosMap将永远是空的,在这个地图中的数据始终有效。
什么情况下会抛出异常?为什么我需要这个额外的代码?
你不能把重复键放在JSON中 –
@ cricket_007他正在迭代地图,所以不应该有任何重复键 –
你应该检查键或值是否为空,因为一些地图支持空值 –