Java 当json键与jackson相同时解析json
我有一个json,它的键与这里显示的键相同Java 当json键与jackson相同时解析json,java,android,json,jackson,Java,Android,Json,Jackson,我有一个json,它的键与这里显示的键相同 { "tests": [ { "id": 1, "object_type": "bla", "objects": { "id": 59, "company_name": "apple", "project_name": "iphone", "duration": 145 } }, { "id": 66,
{
"tests": [
{
"id": 1,
"object_type": "bla",
"objects": {
"id": 59,
"company_name": "apple",
"project_name": "iphone",
"duration": 145
}
},
{
"id": 66,
"object_type": "gla",
"objects": {
"id": 59,
"institution_name": "Test",
"subject": "Gsks",
"duration": 2
}
}
]
}
当我创建类时
A.课堂
列出myClass
TestClass.class
int id;
String object type;
@JsonProperty("objects")
Company objects1;
@JsonProperty("objects")
Subject objects2;
但当我想解析它时,Jackson给了我一个无法解析的错误,因为我的类有两个对象,我的意思是json有键对象,它的主体有不同的键
注意:我知道当我有一个对象时我可以解析它。。。但我必须按照上面解释的那样做
有办法做到这一点吗 根据Sfat的评论:可以是一种方法 根据我的评论, 我的意思是: 创建子公司类,如下所示,其中包含公司和主题类中的所有字段 当您想在反序列化之后检索Subject或Company对象时,请检查SubCompany的类型,并根据该类型获取相关对象
if(type.equals("Subject")
Subject sub = subCompany.getSubject();
这是您接收到的JSON并且在接收时没有选择,还是您可以更改该JSON?您可以在这里使用继承。并在将JSON转换回object之前检查JSON中的字段。最坏的情况是,创建一个包装类并使用它。例如:创建包含所有字段的子公司类。当您从对象中取回对象时,请检查存在哪些字段。此外,您可以从JSON本身发送一个标志,并从诸如getCompany或getSubject@ADi谢谢你的评论。但我不明白你说的是什么。。你能给我举个例子吗?
if(type.equals("Subject")
Subject sub = subCompany.getSubject();