有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json在java中修改JSONObject,获取ConcurrentModificationException异常

我必须修改JSONObject中键的每个值,我使用递归迭代JSONObject,因为它可以嵌套。但我在it.next()中遇到了一个例外 我试图用foreach循环改变方法,fori和foreach使用剩余的键,但无法解决

 Iterator<String> it = myList.iterator();
                while (it.hasNext()) {
                    String value = it.next();
                    jsonObject.put(value, newValue);
              }

完全递归方法如下所示:

 public void handleJSON(Object input, Map<String,Object> result ){
if (input instanceof JSONObject) {
  for (String key: ((JSONObject) input).keySet()) {
    if (!(((JSONObject) input).get(key) instanceof JSONArray))
      if (((JSONObject) input).get(key) instanceof JSONObject) {
        handleJSONObject(((JSONObject) input).get(key), map);
      } else {
        Object value = ((JSONObject) input).get(key);
        ((JSONObject) input).put(key, handleValue(value, map));
      }
    else
      handleJSONObject(new JSONArray(((JSONObject) input).get(key).toString()), map);
  }

}
if (input instanceof JSONArray) {
  for (int i = 0; i < ((JSONArray) input).length(); i++) {
    JSONObject jsonObject = ((JSONArray) input).getJSONObject(i);
    handleJSONObject(jsonObject, map);
  }
}
}

共 (0) 个答案