【问题标题】:How to access the value from a key-value pair in a jsonnode如何从 jsonnode 中的键值对访问值
【发布时间】:2021-05-07 12:41:31
【问题描述】:

我有一个像下面这样的 JsonNode

"{"Pink":["#000000"],"Red":["#000000"],"Blue":["#000000"],"Orange":["#000000"]}"

我正在尝试获取 Pink 的价值,例如这样

jsonNode.get("Pink").asText()

但这不起作用 - 是否有另一种方法可以通过 Java 访问这些值?

【问题讨论】:

  • 你的颜色不仅仅是简单的字符串。它们是数组。尝试读取Pink 数组的第一个元素。

标签: java arrays json jsonnode


【解决方案1】:

这个方法会帮你遍历JsonNode

public void getColorCode() throws JsonProcessingException {
        String color = "{\"Pink\":[\"#000000\"],\"Red\":[\"#000000\"],\"Blue\":[\"#000000\"],\"Orange\":[\"#000000\"]}";

        ObjectMapper mapper = new ObjectMapper();
        JsonNode node = mapper.readTree(color);

        for (JsonNode colorCode : node.get("Pink")){
            System.out.println(colorCode);
        }
    }

【讨论】:

    【解决方案2】:

    看起来你的问题是“Pink”是一个数组而不是一个字符串。这里的解决方案是删除方括号,或者如果这不可能,以下应该会给你预期的结果:

    jsonNode.get("Pink").get(0).asText()
    

    【讨论】:

      猜你喜欢
      • 2018-05-30
      • 1970-01-01
      • 2022-08-07
      • 1970-01-01
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      相关资源
      最近更新 更多