【发布时间】:2021-08-18 14:16:32
【问题描述】:
我正在尝试将 json 反序列化为 java pojo,但我不知道应该如何开始创建一个可用于反序列化 json 的 java 对象,如下所示:
{
"links": [],
"version": 2,
"executionState": "completed",
"outputs": [
{
"name": "identifier",
"value": "2411"
},
{
"name": "segment",
"value": "COMPLEX"
},
{
"name": "rules",
"value": [
{
"metadata": [
{
"ID": "int"
},
{
"NAME": "string"
},
]
},
{
"data": [
[
2,
"S1"
],
[
21,
"S6"
]
]
}
]
}
]
}
我正在与杰克逊合作,并希望使用这样的东西: MyPojo 响应 = mapper.readValue(jsonString, MyPojo.class)
最大的困难是那些“值”元素,其中一些字段包含简单的字符串,而在其他情况下则有一个元素数组
我尝试为元素“值”创建一个抽象类,然后再创建 2 个扩展抽象类的类。但这没有用
【问题讨论】:
-
您是否可以控制 JSON 的来源?仅仅因为定义一个可能是
String或Array<Object>类型的元素是非常糟糕的做法。您应该尝试获取具有良好架构的 JSON。 -
你能分享你的 POJO 吗?
-
@McPringle,不幸的是我无法控制 JSON
-
@JoseA.Matarán,我最终使用了与 josejuan 提议的 POJO 相同的 POJO。小的区别是我使用 Map
而不是类 Outputs2ItemMeta