碰到个问题,http请求接口,返回 Response<JavaBean> 类型数据
application/json 协议,返回字符串,直接解析的话,只把外层Response反序列化了, 内部 JavaBean 对象变成了JsonObject类型,需要序列化的时候执行类型
fastjson内置反序列化类型方法,直接使用即可:
Type type = new TypeReference<Response<PolicyResVO>>(){}.getType();
Response<JavaBean> res = JSONObject.parseObject(result, type);
RestTemplate的话,可以指定返回String,再使用fastjson反序列化
ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
Type type = new TypeReference<Response<JavaBean>>(){ }.getType();
Response<JavaBean> res = JSONObject.parseObject(response.getBody(), type);
其他方式类似
本文介绍如何解决HTTP请求接口返回的Response<JavaBean>类型数据在使用application/json协议时仅能反序列化外层的问题。通过FastJSON的TypeReference方法,可以将内外层的数据一并解析。
4947

被折叠的 条评论
为什么被折叠?



