Ajax 传包含集合的JSON

Posted Season

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax 传包含集合的JSON相关的知识,希望对你有一定的参考价值。

通过ajax给后台传json对象,当json中含对象集合时,如

$.ajax({
        url : ,
        type : "POST",
        dataType : "json",
        data: { 
            ‘year; : ;2006‘,
            ‘list‘ : [
                {‘day‘: ‘01‘, ‘type‘ : ‘A‘},
                {‘day‘: ‘02‘, ‘type‘ : ‘A‘},
            ]
              },
});

此种方式在服务器端接收不到data

 

解决办法,把list中json转成字符串,服务器端再解析成json.

前端关键代码

    var detail = "";
    
    if ($(".list").length == 0)
    {
        return false;
    }
    
    $(".list").each(function() {
        var day = $(this).find("input").attr("name");
        var order = $(this).find("input:checked").val();
        if (order == undefined){
            order = ‘--‘;
        }
        
        detail += ‘{ "day" : "‘ + day + ‘", "order" : "‘ + order + ‘"},‘;
    });
    
    var jsonstr = "({orders:[" + detail + "]})";
    
    $.ajax({
        url : "",
        type : "POST",
        dataType : "json",
        data: { params: JSON.stringify(eval(jsonstr))},

后端

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

String params = this.getRequest().getParameter("params");
JSONObject json = JSONObject.fromObject(params);
JSONArray orders = json.getJSONArray("orders");
int length = orders.size();

for(int i = 0; i < length; i++){
            JSONObject item = orders.getJSONObject(i);
            item.getString("day")    
        }    

 

以上是关于Ajax 传包含集合的JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery ajax 正确地将 json 对象传递给烧瓶服务器

ajax传值,传不到后台 ,求解释

json如何传 boolean

ajax往后台传json格式数据报415错误

如何使用jquery提供的$ajax方法向后台传对象集合

jquery解析php通过ajax传过来的json二维数组对象