Java 从 JSON 转换为对象列表

Java convert to a list of objects from JSON

我正在使用 Java 7. 我还使用 com.fasterxml.jackson.databind.objectmapper 将 json 转换为 Java 对象。

当我最初将 Java 对象转换为 JSON 时,我执行以下操作:

List<QuoteDTO> selectedQuoteDTOs = ...
String jsonSelectedQuoteDTOs = mapper.writeValueAsString(selectedQuoteDTOs);

当我将 JSON 转换回 JAVA 对象时,我执行以下操作:

List<QuoteDTO> selectedQuoteDTOs = mapper.readValue(jsonSelectedQuoteDTOs, List.class);

但是 selectedQuoteDTOs 不是 QuoteDTO 类型,而是 LinkedHashMap.

类型

导致我收到以下错误:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.abc.model.QuoteDTO

当我这样做时:

for (QuoteDTO selectedQuoteDTO : selectedQuoteDTOs) {

问题

将 JSON 转换为 JAVA 时,如何将对象转换为 List<QuoteDTO> 而不是 List<LinkedHashMap>

LinkedHashMap键是QuoteDTO成员变量的名称。

试试这个。这应该可以完成工作

ObjectMapper mapper = new ObjectMapper();
List<QuoteDTO> selectedQuoteDTOs = mapper.readValue(jsonSelectedQuoteDTOs, new TypeReference<List<QuoteDTO>>(){});