有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数据绑定Java从JSON转换为对象列表

我正在使用Java7。我还使用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成员变量的名称


共 (1) 个答案

  1. # 1 楼答案

    试试这个。这就行了

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