使用objectmapper将json转list,json转复杂类型
·
方法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;
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)