Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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 JSON与根元素反序列化,根元素是一个只有一个条目的数组_Java_Json_Jackson_Deserialization - Fatal编程技术网

Java jackson JSON与根元素反序列化,根元素是一个只有一个条目的数组

Java jackson JSON与根元素反序列化,根元素是一个只有一个条目的数组,java,json,jackson,deserialization,Java,Json,Jackson,Deserialization,与中一样,我希望使用@JsonRootName使用根元素反序列化JSON。但在我的例子中,根字段的值是一个数组,其中正好有一个对象,而不仅仅是一个对象 所以不是这个 { "user": { "name":"Sam Smith", "age":1 } } 我有这个 { "user":[ { "name":"Sam Smith", "age":1 } ]} 我不能简单地使用 @JsonRootNode(value="

与中一样,我希望使用
@JsonRootName
使用根元素反序列化JSON。但在我的例子中,根字段的值是一个数组,其中正好有一个对象,而不仅仅是一个对象

所以不是这个

{
  "user":
    {
      "name":"Sam Smith",
      "age":1
  }
}
我有这个

{
  "user":[
    {
      "name":"Sam Smith",
      "age":1
  }
]}
我不能简单地使用

@JsonRootNode(value="user")
public class User {
    public String name;
    public Integer age;
}
因为这将产生一个
JsonMappingException:无法反序列化启动\ u数组令牌之外的用户实例


有没有办法告诉jackson忽略阵列,只看物体?

我想没有,你不能。你为什么要这么做?如果它是一个数组,只需接受它,反序列化该数组并获取第一个(唯一)项。如果只有一个项目,那么产生JSON的项目就永远不会序列化数组。我同意,不幸的是,我无法控制序列化。当然,我可以反序列化数组并获取条目,这样就不那么优雅了