gpt4 book ai didi

java - 如何告诉 Jackson 将子元素设为顶级元素

转载 作者:行者123 更新时间:2023-11-30 02:23:10 25 4
gpt4 key购买 nike

我知道如何打开 Object在 jackson ,但我找不到任何关于如何展开两层的示例。

Sharepoint API 端点返回以下格式的所有内容:

{
"d": {
"results": [
{
/* lots objects with lots of properties
that are irrelevant to the question */
}
]
}
}

我尝试了以下方法,但它没有使 results评估顶级对象。

this.om.readerFor(new TypeReference<List<User>>() {})
.withRootName("d")
.readValue(response.parseAsString());

我怎么知道Jackson开始解析results作为顶级Array 无需创建自定义对象层次结构并且无需编写自定义反序列化器。我有一个自定义对象,它被注释为将填充,我想要 TypeSafety所以Map<String,Object>这不是我想要的。

最佳答案

可能不是最有效的方法,但可以尝试先将对象解析为树,然后导航到您需要的节点。像这样的事情:

mapper.readerFor(new TypeReference<List<User>>() {}).readValue(mapper.readTree(json).get("d").get("results"))‌​;

更容易阅读:

mapper.convertValue(mapper.readTree(json).get("d").get("‌​results"), new TypeReference<List<User>>() {});

关于java - 如何告诉 Jackson 将子元素设为顶级元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307665/

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