试图遍历JsonNode但是根jsonNode正在复制数据

时间:2017-07-26 18:25:38

标签: json exception jackson concurrentmodification

我正在尝试循环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。

1 个答案:

答案 0 :(得分:1)

将变量节点更改为objNode,因为节点可能是jackson中的预定义值,您也可以尝试将每个变量设为最终