gpt4 book ai didi

java - 使用 Jackson 的 JsonNode.findPath(String fieldName) 获取具有非唯一列名称的字段的值

转载 作者:行者123 更新时间:2023-11-30 08:35:54 25 4
gpt4 key购买 nike

考虑以下(简化的)JSON 树结构:

  {
"id": "1",
"metaData": {
"name": "nestedName"
},
"name": "rootName"
}

我将这个结构放在 com.fasterxml.jackson.databind.JsonNode 对象中。要获取这些列的字符串值,我只需要在我的 Java 代码中包含以下语句:

String id = jsonNode.findPath("id").textValue();

我喜欢它不仅因为它的简单性,而且我的代码不必知道它正在解析的 JSON 树结构。我意识到,如果我特别想要 [root][name],我将必须有某种确定逻辑。

我的问题是,为了以某种方式区分/指定要获取的“名称”,我至少需要多少逻辑?我查看了 JsonNode.findValues(String fieldName) 以获取值列表,但仍然不确定我将如何确定哪个值来自哪个“名称”以及如何选择“根”值,或者至少,最接近根的那个。

很抱歉,如果这是一个重复的问题,但我找不到完全匹配的问题,所以再问一次。

最佳答案

如果你想要一个节点直接在根下面使用 .get()

jsonNode.get("id").textValue();

如果你想得到“name”但是你有歧义问题你可以做类似的事情

jsonNode.findPath("metaData").findPath("name").textValue();

但是当然你知道必须了解一些关于模式的事情。

关于java - 使用 Jackson 的 JsonNode.findPath(String fieldName) 获取具有非唯一列名称的字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com