方法1:
List returnBookResults = mapper.readValue(JSON.toJSONString(response.getData()),new TypeReference(){});
方法2:
JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, ReturnBookResult.class);
List returnBookResults = (List)mapper.readValue(JSON.toJSONString(response.getData()), javaType);

json转复杂类型:

private <T> BaseResponse parseResponse(String response, Class<T> clz,Class<?> ...listClz) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        if(clz==List.class){
            BaseResponse baseResponse = new BaseResponse();
            JavaType javaType = objectMapper.getTypeFactory().constructParametricType(BaseResponseList.class, listClz);
            BaseResponseList baseResponseList = objectMapper.readValue(response,javaType);
            baseResponse.setData(baseResponseList.getData());
            baseResponse.setStatus(baseResponseList.getStatus());
            return baseResponse;
        } else {
            JavaType javaType = objectMapper.getTypeFactory().constructParametricType(BaseResponse.class, clz);
            BaseResponse baseResponse = objectMapper.readValue(response,javaType);
            return baseResponse;
        }
    }

注意import包为
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐