Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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到具有多个条目的POJO_Java_Json_Jackson - Fatal编程技术网

Java Jackson-Json到具有多个条目的POJO

Java Jackson-Json到具有多个条目的POJO,java,json,jackson,Java,Json,Jackson,我知道User.json文件是否 { "name" : { "first" : "Joe", "last" : "Sixpack" }, "gender" : "MALE", "verified" : false, "userImage" : "Rm9vYmFyIQ==" } 我可以这样构造单个用户对象: User user = mapper.readValue(new File("user.json"), User.class); 但是,如果User.json文件具有以下内

我知道User.json文件是否

{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "Rm9vYmFyIQ=="
}
我可以这样构造单个用户对象:

User user = mapper.readValue(new File("user.json"), User.class);
但是,如果User.json文件具有以下内容,如何构造对象列表:

{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "Rm9vYmFyIQ=="
},
{
  "name" : { "first" : "Jane", "last" : "Austen" },
  "gender" : "FEMALE",
  "verified" : false,
  "userImage" : "DFREWEWE=="
}

?

多种方式:如果您有这些JSON数组,您可以执行以下操作:

User[] users = mapper.readValue(json, User[].class);
Iterator<User> it = mapper.readValues(json, User.class);
或者,如果只是一系列根级别值,则可以执行以下操作:

User[] users = mapper.readValue(json, User[].class);
Iterator<User> it = mapper.readValues(json, User.class);
Iterator it=mapper.readValues(json,User.class);

在问题代码中迭代值(添加到列表等)

很明显,“json”是一个文件对象,包含json textCorrect——我没有指定类型,因为它可以来自多个源(甚至是json
byte[]
String
)@ImtiazAhmad查看Jackson javadocs,了解更多可能的类型。我面临的问题正好相反。我想创建一个类似user.json的json文件。具有多个根级别值。但是当我运行mapper.writeValue()方法时,它会覆盖旧的值。有人能帮忙吗。@ShashankGarg是的:ObjectMapper.writer().WriteValue(dst)让你
SequenceWriter
做你想做的事