如果我有简单的json与
{
"age":29,
"messages":["msg 1","msg 2","msg 3"],
"name":"mkyong"
}
我使用此代码
public class JacksonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// read from file, convert it to user class
User user = mapper.readValue(new File("c:\\user.json"), User.class);
// display to console
System.out.println(user);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
得到一个对象。但是,如果我有
{
"age":29,
"messages":["msg 1","msg 2","msg 3"],
"name":"alice"
}
{
"age":18,
"messages":["msg 4","msg 5","msg 6"],
"name":"bob"
}
如何从一个json文件中获取所有对象并将其添加到列表中?抱歉我的英文不好
答案 0 :(得分:1)
如果你有一个User
的JSON数组,你可以反序列化:
作为User
的集合:
om.readValue("myFile", new TypeReference<Collection<User>>() {});
作为array
User
om.readValue("myFile", User[].class);
SimY4指出,您可能需要修复JSON文件。
答案 1 :(得分:0)
试试这个:
Class<?> clz = Class.forName(type);
JavaType listType = mapper.getTypeFactory().constructCollectionType(List.class, clz);
List <T> record = mapper.readValue(json, listType);