Gson解决前端多层数据封装与后台Controller层数据接收
2017-04-03 00:00
295 查看
问题描述:工作上遇到了一个小问题,前端页面用的是一个大对象,封装了4个数组,每个数组里又放了不同的对象。然后后端Controller也是按同样的层次结构和属性名称接收的,但就是接收不到数据。
例子:
前端JS代码
后台是这样接收的:
VO类:
Controller:
总结:前端现将数据转换成JSON,传到后台,然后通过Gson再将JSON转回对应的对象
例子:
前端JS代码
var user={}; var imageArray = []; var textArray = new Array(); $("*[name=img_url]").each(function (i, n) { var _obj = $(this); var img_url = _obj.val(); if (img_url!=""&&img_url!=null) { var ImageVo ={}; ImageVo.imageurl=img_url; imageArray.push(ImageVo); } }); $("*[name=text]").each(function (i, n) { var _obj = $(this); var textInfo= _obj.val(); if (text!=""&&text!=null) { var textVo ={}; textVo .text=textInfo; textArray .push(textVo); } }); user.images = imageArray; user.texts = imageArray; var jsonData = { "user":user }; $.ajax({ type : "post", url: "/test", dataType:"json", cache:false, async:false, data: "use="+JSON.stringify(user), success:function(data){ 代码逻辑... } });
后台是这样接收的:
VO类:
public class UserVo { private List<ImageVo> images = new ArrayList<ImageVo>(); private List<TextVo> texts = new ArrayList<TextVo>(); 此处省略了get/set方法 }
public class ImageVo { private String imageurl; 此处省略了get/set方法 }
public class TexteVo { private String text; 此处省略了get/set方法 }
Controller:
@RequestMapping(value = "/test", method = RequestMethod.POST) public @ResponseBody Map<String, Object>test(String user) { Gson gson = new Gson(); Use user = gson.fromJson(user, new TypeToken<UserVo>() { }.getType()); }
总结:前端现将数据转换成JSON,传到后台,然后通过Gson再将JSON转回对应的对象
相关文章推荐
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- C#无限分级实现,前端WEB页面接收,后台提供层级Json数据
- 解决Gson解析数据用map接收时int自动转化为double问题
- HttpWebResponse Post 前端控件数据,后台如何接收?
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- C#无限分级实现,前端WEB页面接收,后台提供层级Json数据
- java后台返回前端数据的方式json,html 组装json的技术struts2-json-plugin,fast-json,Gson,手动拼接
- Maven项目:Spring MVC + Ajax + Json + RequestBody:POST后台服务器接收前端JSON数据并注解到POJO内
- java后台设置可跨域访问,前端ajax获取json数据,解决浏览器限制跨域访问的问题
- 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
- 前端jQuery向后台发送POST请求并接收后台返回的数据(C#)
- C#无限分级实现,前端WEB页面接收,后台提供层级Json数据
- 解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
- struts2 数据传输问题---“POST方式提交数据量过大,在后台接收不到数据”问题的解决
- Delphi:TComPort封装在DLL中,通讯时无法接收串口数据的解决办法
- Gson解决前后端数据接收问题
- angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法
- 解决SpringMvc后台接收json数据中文乱码问题
- axios解决OPTIONS问题,导致后台无法接收到数据