Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java Jackson映射器-嵌套属性_Java_Json_Jackson - Fatal编程技术网

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