我有一个问题,如何将具有相同键的JSON对象映射到不同的对象。 如果我用特定字段编写2个类,则会出现错误,因为数据元素包含两次。
如何将资源A映射到A类,将资源B映射到B类?
{
"ETag":"oiojojojojoj==",
"elements":[
{
"resource":"A",
"ETag":null,
"data":[
{
"anotherfield":"text",
"id":1,
"name":"GB"
}
]
},
{
"resource":"B",
"ETag":"dmVuZG9yOzIwMTctMDUtMDlUMTQ6MzE6NDNa",
"data":[
{
"field":"read",
"id":1
}
]
}
]
}
这些课程可能如下所示:
public class Element {
@JsonProperty("resource")
public String resource = null;
@JsonProperty("ETag")
public Object eTag = null;
@JsonProperty("data")
public List<A> dataInA = null;
@JsonProperty("data")
public List<B> dataInB = null;
}
public class Example {
@JsonProperty("ETag")
public String eTag;
@JsonProperty("elements")
public List<Element> elements = null;
}
A类
public class A {
@JsonProperty("anotherfield")
public String anotherfield;
@JsonProperty("id")
public Integer id;
@JsonProperty("name")
public String name;
}
B类
public class B {
@JsonProperty("field")
public String field;
@JsonProperty("id")
public Integer id;
}
非常感谢!
编辑:
当我将JSON元素切换到dataA和dataB时,它可以工作。
{
"ETag":"oiojojojojoj==",
"elements":[
{
"resource":"A",
"ETag":null,
"dataA":[
{
"anotherfield":"text",
"id":1,
"name":"GB"
}
]
},
{
"resource":"B",
"ETag":"dmVuZG9yOzIwMTctMDUtMDlUMTQ6MzE6NDNa",
"dataB":[
{
"field":"read",
"id":1
}
]
}
]
}
元素类:
public class Element {
@JsonProperty("resource")
public String resource;
@JsonProperty("ETag")
public Object eTag;
@JsonProperty("dataA")
public List<A> dataInA;
@JsonProperty("dataB")
public List<B> dataInB;
}