gpt4 book ai didi

java - Jackson - 从文件中一一读取不同的对象

转载 作者:行者123 更新时间:2023-12-02 04:49:11 30 4
gpt4 key购买 nike

我有一个这样的文件:

[{
"messageType": "TYPE_1",
"someData": "Data"
},
{
"messageType": "TYPE_2",
"dataVersion": 2
}]

正如您所看到的,有一个文件包含不同类型的 JSON 对象。我还有一个能够解析这两种类型的 ObjectMapper。我必须一一读取 JSon 对象(因为这个文件可能非常大)并为每个对象获取正确的对象(Type1Obj 或 Type2Obj)。

我的问题是如何使用 Jackson 实现从文件中一一读取 JSon 对象。

最佳答案

您可以将数组读取为通用 Jackson JSON 对象,类似于

ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonData);

然后使用遍历数组的所有子元素

rootNode#elements()

并使用与 messageType 类似的检查将每个 JsonNode 子级解析为相应的类型

if ("TYPE_1".equals(childNode.get("messageType")) {
Type1Class type1 = objectMapper.treeToValue(childNode, Type1Class.class);
} else // ...

关于java - Jackson - 从文件中一一读取不同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56457221/

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