js传送json字符串,后端取其字符串对应的值

前端处理

'click .email': function (e, value, row, index) {
     var info=JSON.stringify(row);
     alert(info)
     $.ajax({
         type:"post",
         url:"/Project/mailController/receive",
         data:info,
         contentType: "application/json",
         dataType : "text",
         success(){
         },
         error : function(XMLHttpRequest, textStatus, errorThrown) {
             //请求失败时执行该函数
             alert(XMLHttpRequest);
             alert(textStatus);
             alert(errorThrown);
         }
     })
},

后端处理字符串导阿里巴巴的包 

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.41</version>
</dependency>

后端代码

@RequestMapping("receive")
public String receive(@RequestBody String receiveInfo){
    System.out.println(receiveInfo);
    JSONObject jsonObject = JSON.parseObject(receiveInfo);
    System.out.println(jsonObject.get("meetingAddress"));
    return "manage";
}

最后说点干货(对于我说是,困惑了我一天)

前台传的json数据如果有【】,那它是数组,不能用上面的获取方法,要遍历数组,才可以获取

第一条是json字符串,第二条是json数组,json数组遍历方法如下:

List<HashMap> list=JSON.parseArray(receivep,HashMap.class);
for(int i=0;i<list.size();i++){
    System.out.println(list.get(i).get("email"));
}

    //json字符串转化为对象组

    JSONArray jsonArray= JSONArray.fromObject(listStr);
        List<Meeting> meetingList = (List<Meeting>)JSONArray.toCollection(jsonArray, Meeting.class);

 

 

bug总结

1.若传到后台的数据是16进制,则需要前台的数据转化为json,用

JSON.stringify(row),

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值