【发布时间】:2019-11-15 23:42:47
【问题描述】:
我有以下格式的 JSON 网址列表:
{
"level": 1,
"secondLevel": {
"level": 2,
"thirdLevel": [
{
"level": 3,
"fourthLevel": {
"level": 4,
"fifthLevel": [
{
"type": "URLS",
"listOfimageURLs": [
{
"urlNo": "Num1",
"data": "num1Data"
},
{
"urlNo": "Num2",
"data": "num2Data"
},
{
"urlNo": "Num3",
"data": "num3Data"
}
]
}
]
}
}
]
}
}
最初我有这样的东西,给了我一个 URL 列表,其中包含列表中的所有内容。
@Data
@NoArgsConstructor
public class URLDetail {
private String type;
private List<Urls> urlData;
}
现在我正在尝试反序列化以下 Java POJO,并在字段 num2Data 中设置值 urlData
@Data
@NoArgsConstructor
public class URLDetail {
private String type;
private String urlData;
}
我试图弄清楚如何有条件地循环遍历 JSON 列表 - url 对于任何等于“Num2”的 urlNo,将关联的“data”字段值(在本例中为“num2Data”)反序列化为 URLDetail POJO 字段 urlData?
我有正常的
mapper.readValue(json, URLDetail.class);
如果我删除 urlData,type 字段设置正确,但完全不确定应用逻辑来解析 JSON 中的 urls 列表。
我需要创建某种自定义反序列化器吗?
【问题讨论】:
-
我在提出问题之前看到了上面的链接。不太符合我的要求。我想保留一种类型,一种类。不是两个。
-
@CássioMazzochiMolin 任何想法,看看你在这里回答的非常相似的东西stackoverflow.com/questions/38840659/…
标签: java json jackson deserialization pojo