>我有 2 个简单的实体
public class User {
public int id;
public String name;
}
public class Item {
public int id;
public String name;
public User owner;
}
杰克逊可以成功地反序列化这个 json。
{
"id": 1,
"name": "theItem",
"owner": {
"id": 2,
"name": "theUser"
}
}
new ObjectMapper().readValue(JSON, Item.class);
问题所在
我想知道是否可以在不创建另一个实体 (Item2.class( 的情况下反序列化下一个 json。
我想使用 Item 反序列化它.class
{
"id": 1,
"name": "theItem",
"owner_id": 2,
"owner_name": "theUser"
}
public class Item2 {
public int id;
public String name;
public int owner_id;
public String owner_name;
}
这有可能吗?
是的,你可以做到,但只需创建Map<String,Object>
杰克逊负责将值转换为整数或字符串,下面是有效的代码
public class Item {
public int id;
public String name;
public Map<String, Object> owner ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, Object> getOwner() {
return owner;
}
public void setOwner(Map<String, Object> owner) {
this.owner = owner;
}
}