【发布时间】:2020-12-08 13:23:59
【问题描述】:
我正在使用 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 不能被强制转换 到 com.abc.model.QuoteDTO
当我这样做时:
for (QuoteDTO selectedQuoteDTO : selectedQuoteDTOs) {
问题
将 JSON 转换为 JAVA 时,如何将对象转换为 List<QuoteDTO>,而不是 List<LinkedHashMap>?
LinkedHashMap 键是QuoteDTO 成员变量的名称。
【问题讨论】:
-
这可能是一个解决方案:stackoverflow.com/questions/16428817/…
标签: java data-binding fasterxml