我们说我有JSON
{
"anonymous": {
"id": 39053697,
"name": "Anonymous"
}
}
anonymous
是发送到API的查询,并将针对每个逐个查询进行更改。因此,如果我要查询John
,它将如下所示:
{
"john": {
"id": 3456987,
"name": "John"
}
}
我正在尝试使用JacksonConverter将此Json转换为Android中的对象。 目前我有:
public class NameVo {
public InfoVo john;
public InfoVo getResults() {
return john;
}
}
这就是我目前将JSON
与Object
匹配的方式,我不确定如何使NameVo
灵活处理所有可能的查询。
答案 0 :(得分:1)
您应该使用@JsonAnySetter
注释:
class NameVo {
public InfoVo value;
public InfoVo getValue() {
return value;
}
@JsonAnySetter
public void setAnyValue(String propertyName, InfoVo value) {
System.out.println("Name: " + propertyName);
this.value = value;
}
@Override
public String toString() {
return String.valueOf(value);
}
}
现在,简单的用法:
ObjectMapper mapper = new ObjectMapper();
System.out.println("Serialize to JSON:");
System.out.println(mapper.readValue(json, NameVo.class));
以上程序打印:
Serialize to JSON:
Name: john
InfoVo [id=39053697, name=Anonymous]