我正在尝试将json结果映射到我的类实例的Iterable。
如果我得到1个对象结果,我使用以下方法将它从JSON转换为类实例:
private ObjectReader personReader = null;
private ObjectReader getPersonReader() {
if (personReader != null) return personReader;
ObjectMapper mapper = new ObjectMapper();
return personReader = mapper.reader(Person.class);
}
public Person response2Person(ResponseEntity<String> response) {
try {
return getPersonReader().readValue(response.getBody());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
我的getPersonsReader方法在转换包含多个结果的JSON字符串时的样子是什么?
public Iterable<Person> response2Persons(ResponseEntity<String> response) {
try {
return getPersonsReader().readValue(response.getBody());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
JSON字符串如下所示:
[
{
"firstname": "Foo",
"lastname": "Bar"
},
{
"firstname": "Elvis",
"lastname": "Presley"
}
]
答案 0 :(得分:3)
您可以使用TypeReference
对参数化类型进行编译时引用:
mapper.reader(new TypeReference<List<Person>>() {});