【发布时间】:2021-01-19 12:01:23
【问题描述】:
我正在尝试反序列化我的 JSON,一切正常,但我想添加一些条件以使其更好。
以下是我的父类基于哪个反序列化发生:
public class ParentJSON{
@NotNull
private String name;
private ChildJSON type;
}
type 字段是可选的,是 JSON。但是,如果 JSON 中存在 type 字段,那么我想将 ChildJSON 中的字段设为必填:
public class ChildJSON{
private String childName;
private String childType;
}
如果我直接将@NotNull 添加到我的ChildJSON 字段中,那么如果JSON 中不存在type,它将引发错误。
这是我的客户端文件,它将读取 JSONFILE:
public class Client {
public static void main(String args[]) {
final ObjectMapper objectMapper = new ObjectMapper();
ParentJSON json = objectMapper.readValue(ApplicationMain.class.getResourceAsStream("/JSONFile.json"), ParentJSON.class);
}
}
我的 json 看起来像这样:
{
{
"name":"Hello"
},
{
"name":"Bye",
"type":{
"childName":"childByeName",
"childType":"childByeType"
}
}
}
【问题讨论】:
标签: java json jackson json-deserialization