我有一个以下格式的 json,其中 key 表示属性类型,value 表示该属性的值。
{ "attributes":
[
{
"key":"name",
"value":"Archit"
},
{
"key":"website",
"value":"stackoverflow"
},
{
"key":"languages",
"value":[
"python",
"java",
"c++"
]
}
]
}
我正在尝试使用 jackson 将其映射到以下 java 对象:
public class Attributes {
List<Attribute> attributes;
}
public abstract class Attribute {
String key;
}
public class SingleValuedAttribute extends Attribute{
String value;
}
public class MultiValuedAttribute extends Attribute{
List<String> value;
}
ObjectMapper mapper = new ObjectMapper();
Attributes attributes = mapper.readValue(new File(jsonFilePath), Attributes.class);
我尝试查看多态反序列化,但需要 json 对象中的类型信息,这在我的 json 中不存在?
关于如何做到这一点的任何提示?
PS:我无法更改 json 格式。键列表不受限制/限制。