java Jackson映射器-嵌套属性
我有两个简单的实体java Jackson映射器-嵌套属性,java,json,jackson,Java,Json,Jackson,我有两个简单的实体 public class User { public int id; public String name; } public class Item { public int id; public String name; public User owner; } Jackson可以成功地反序列化此json { "id": 1, "name": "theItem", "owner": { "id
public class User {
public int id;
public String name;
}
public class Item {
public int id;
public String name;
public User owner;
}
Jackson可以成功地反序列化此json
{
"id": 1,
"name": "theItem",
"owner": {
"id": 2,
"name": "theUser"
}
}
新建ObjectMapper.readValueJSON,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 Jackson需要将值转换为整数或字符串,下面是有效的代码
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;
}
}
我想知道的是什么意思?如果不需要创建另一个实体,是否可以反序列化下一个json?如果我理解的很好,您希望将json对象映射到Item类,对吗?如果是,我认为没有问题。尽管有嵌套属性,但Json中没有循环属性。@Aris_Kortex我不想创建Item2.class您所做的看起来像是直接来自。。。那么,自定义反序列化程序不是你想要的吗?这里介绍了一种实现这一点的方法。你是说去掉类User而使用Map吗?对不起,是的,去掉User并使用Map