【问题标题】:Java convert to a list of objects from JSONJava 从 JSON 转换为对象列表
【发布时间】: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&lt;QuoteDTO&gt;,而不是 List&lt;LinkedHashMap&gt;

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

【问题讨论】:

标签: java data-binding fasterxml


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多