我正在尝试循环Jsonnode但是根jsonNode正在复制数据。 试图找出但不确定我在哪里错过了这个问题。将尝试解释下面的问题。
我必须使用Jackson API。
Json区块是:
{ "查询":[
{
"id": "keyword",
"values": [
"test"
]
},{
"id": "include",
"values": [
false
]
}
]
}
我的Java代码块是Iterator fieldNames = root.fieldNames(); while(fieldNames.hasNext()){
String fieldName = fieldNames.next();
if (fieldName.equalsIgnoreCase("queries")) {
nameNode =root.get(fieldName);
}
JsonNode nameNode = root.get("queries");
for (JsonNode node : nameNode) {
JsonNode elementId = node.path("id").asText();
if (!elementId.isEmpty() && elementId.equalsIgnoreCase("include")) {
check = true;
include = node;
}
}
When debug comes to line for (JsonNode node : nameNode) { , node value is "id": "keyword", "values": [ "test" ] and nameNode is the json shown above but when it comes to next line which is " node.path("id").asText();"
nameNode变量附加" id":"关键字","值":[" test" ] 2次。
现在,json是原始的json,其中包含" id":"关键字","值":[" test" ]附加2次并给出concurrentModificationException。
答案 0 :(得分:1)
将变量节点更改为objNode,因为节点可能是jackson中的预定义值,您也可以尝试将每个变量设为最终