接口返回{“$ref“:$....[0]}时怎么解决"/>
接口返回{“$ref“:$....[0]}时怎么解决
问题场景:
在开发测试平台的过程中,后端接口返回{" r e f " : ref": ref":…[0]}的数据,导致页面展示数据不对
问题描述
跟前端对接的时候最近经常出现数据中包含{" r e f " : ref": ref":…[0]}这类无法解析的问题
后端代码
@RequestMapping(value = "/qaUsers",method = RequestMethod.POST)public BaseResponse<PageList<QaUserDto>> qaUsers(@Valid @RequestBody QaUserQueryFilter filter){return BaseResponse.getInstance(userService.queryQaUser(filter));}
原因分析:
使用FastJson的JSONArray类型作为返回数据,当像JSONArray对象中添加JSONObject对象,而JSONObject对象中包含相同的节点数据时,FastJson会防止返回数据栈溢出的问题,自动将JSONArray中相同的节点数据使用引用方式代替,即:{" r e f " : ref": ref":…[0]}
解决方案:
将后端代码返回数据包裹一层JSON.toJSON
@RequestMapping(value = "/qaUsers",method = RequestMethod.POST)public BaseResponse<PageList<QaUserDto>> qaUsers(@Valid @RequestBody QaUserQueryFilter filter){return BaseResponse.getInstance(JSON.toJSON(userService.queryQaUser(filter)));}
记录踩坑记录,希望可以帮到你,喜欢的可以点个赞哦👍
更多推荐
接口返回{“$ref“:$....[0]}时怎么解决
发布评论