java从json转换为对象列表

gxwragnw  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(381)

我正在使用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转换为com..model.quotedto
当我这样做时:

for (QuoteDTO selectedQuoteDTO : selectedQuoteDTOs) {

问题
在将json转换为java时,如何将对象转换为 List<QuoteDTO> ,而不是 List<LinkedHashMap> ?
这个 LinkedHashMap 密钥是 QuoteDTO 成员变量。

30byixjq

30byixjq1#

试试这个。这样就可以了

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

相关问题