Подтвердить что ты не робот

Как изменить JsonNode в Java?

Мне нужно изменить значение атрибута JSON в Java, я могу получить значение правильно, но я не смог изменить JSON.

вот код ниже

  JsonNode blablas = mapper.readTree(parser).get("blablas");
    for (JsonNode jsonNode : blablas) {
        String elementId = jsonNode.get("element").asText();
        String value = jsonNode.get("value").asText();
        if (StringUtils.equalsIgnoreCase(elementId, "blabla")) {
            if(value != null && value.equals("YES")){
                 // I need to change the node to NO then save it into the JSON
            }
        }
    }

Каков наилучший способ сделать это?

4b9b3361

Ответ 1

JsonNode является неизменным и предназначен для операции синтаксического анализа. Однако его можно включить в ObjectNodeArrayNode), которые допускают мутации:

((ObjectNode)jsonNode).put("value", "NO");

Для массива вы можете использовать:

((ObjectNode)jsonNode).putArray("arrayName").add(object.ge‌​tValue());

Ответ 2

Вам нужно получить объект типа ObjectNode, чтобы установить значения. Взгляните на this

Ответ 3

Я думаю, что вы можете просто использовать ObjectNode и использовать метод put. Как этот

ObjectNode o = (ObjectNode) jsonNode; o.put("value", "NO");