+-

我有以下代码块,我想将它存储在 JSONObject中,以便迭代它并在前端渲染它.
JSONObject dlCovs = jsonObject.getJSONObject("result").getJSONObject("cov_details");
Iterator x = dlCovs.keys();
while (x.hasNext()){
String key1 = (String) x.next();
String value1 = dlCovs.optString(key1);
dlCovs.put("covabbrv",key1);
dlCovs.put("dcIssuedt",value1);
dlCovs.put("vecatg",key1);
dlData.put("dlCovs", dlCovs);
}
/* dlCovs.put("covabbrv",cov);
dlCovs.put("issue_date",issue_date);*/
dlObj.put("status","valid");
dlData.put("dlCovs", dlCovs);
dlData.put("status","valid");
迭代while循环中的数据我得到java.util.concurrentModificationException,他们也是一个例子,当我试图调试它时,它将值存储在dlData.put(“dlCovs”,dlCovs)中,但是一旦它第二次迭代它就会抛出错误.
我遵循JSON值
"cov_details": {
"MCWG": "NA",
"3WTR": "NA",
"PSV BUS": "NA",
"LMV": "NA",
"INVCRG": "NA"
},
任何帮助都将非常值得一提,非常感谢
在此处输入代码
最佳答案
您在迭代其条目时修改地图.你不能这样做.
将项目放入单独的地图中,然后将其添加到“主”地图中:
Map newEntries = new HashMap();
Iterator x = dlCovs.keys();
while (x.hasNext()){
String key1 = (String) x.next();
String value1 = dlCovs.optString(key1);
newEntries.put("covabbrv",key1);
// .. etc
}
dlCovs.putAll(newEntries);
另外:don’t use raw types.你应该声明x像:
Iterator<String> x = dlCovs.keys();
然后你不需要演员:
String key1 = x.next();
同理:
Map<String, String> newEntries = new HashMap<>();
点击查看更多相关文章
转载注明原文:java.util.concurrentModification迭代JSONObject时的异常 - 乐贴网