【发布时间】:2017-03-12 09:30:25
【问题描述】:
我有这样的方法:
public List<CustomerDTO> getAllCustomers() {
Iterable<Customer> customer = customerRepository.findAll();
ObjectMapper mapper = new ObjectMapper();
return (List<CustomerDTO>) mapper.convertValue(customer, CustomerDTO.class);
}
当我尝试转换 List 值时,我收到以下消息
com.fasterxml.jackson.databind.JsonMappingException:无法从 START_ARRAY 令牌中反序列化 com.finman.customer.CustomerDTO 的实例
【问题讨论】:
-
作为一般规则,当您发现自己在投射时,您可能没有做您认为自己正在做(或想做)的事情。
-
你为什么要这样做?您是否意识到这包括将客户序列化为 JSON,然后将 JSON 解析为 CustomerDTO?如果两个类没有相同的结构,它会非常低效,晦涩,在运行时会失败,并且不支持重构。为什么不直接创建一个构造函数或从客户创建 CustomerDTO 的方法?
标签: java objectmapper