1. ホーム
  2. java

[解決済み] JavaでJsonNodeを変更するには?

2022-05-17 08:28:55

質問

JavaでJSON属性の値を変更したいのですが、値は正しく取得できるのですが、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
            }
        }
    }

どのような方法があるのでしょうか?

どのように解決するのですか?

JsonNode は不変であり、パース操作のためのものです。 しかし、これは ObjectNode (にキャストすることができます(そして ArrayNode )で、突然変異を許容する。

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

配列の場合は

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