spring mvc controller json数据

本文介绍如何使用jQuery.ajax通过POST方式发送JSON格式的对象数组到服务器,并在后端使用@RequestBody注解进行接收的方法。提供了两种解决方案,一种是在前端将数据序列化为JSON字符串并在后端直接接收,另一种是在前端直接传递JSON格式的数据并在后端使用List接收。

项目中遇到个批处理,需要前台传递一个json格式对象数组,如下:
var data={
   "wos":[{"id":1,"satisfaction":10,"satisfactionRemark":""},
  {"id":2,"satisfaction":20,"satisfactionRemark":""},
  {"id":3,"satisfaction":30,"satisfactionRemark":""}]
 };
我用的是jQuery.ajax的post将数据扔给controller接收

解法1:

 $.ajax(
                {
                  url:url, 
                  type: "POST", 
                  data: JSON.stringify(x), 
                  success: function(data){
                     
                  }, 
                  dataType: "json",
                  contentType: "application/json"
               } );

@RequestBody 用这个接受你的对象参数

public @ResponseBody String saveDocumentBook(@RequestBody 对象 x, HttpServletRequest request)

我后来是后台先取得要传递的数组参数然后转化的,(T[])JSONArray.toArray(JSONArray.fromObject(wosStr), T.class);T是要转换成的类型
解法2:

前台ajax传参数的时候转好json,后台用 @RquestBody List wos 来接就可以了

$.ajax({
                url : url,
                type : "POST",
                contentType: "application/json; charset=utf-8",
                datatype:"json",
                data : $.toJSON(data),
                success : function(data, stats) {//...}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值