如何动态生成JSon对象?

时间:2016-12-20 10:50:28

标签: javascript jquery json

我试图在客户端和服务器之间发送/接收JSon。

我用函数

生成了JSon(我想过)
    self.gen_data=function()
    {   //create request data
        var input_array =self.input_value();  
        myJson={ 
                request_type:1,   //send request for problem 1
                data_list:{}
               };

        for(var k=0;k<input_array.length;k++)
        {
            myJson.data_list[k]=input_array[k];  //a number in array
        }
        console.log(myJson);
        return myJson;

    }

无法在服务器上阅读

$.ajax({
        type: "POST",
        url: self.serverURI,
        data: JSON.stringify(self.gen_data()),
        dataType: 'json',
        success: function (result) 
        {
            //console.log(result);
            alert(JSON.stringify(result));
            //alert(result.a);
        },
        error: function (xhr, ajaxOptions, thrownError) 
        {
                console.log(xhr);
        }
    });
服务器上的

var data=req.body;

console.log("request_type: ",req.body.request_type);

console.log("data_list size: ",data.data_list.length);

/*
for(var i=0;i<data.data_list.length;i++)
{
    console.log(data.data_list[k]);
}
*/

但显示为:

  data_list size:  undefined

尝试读取数组元素导致的错误。

1 个答案:

答案 0 :(得分:2)

JSON.stringify()返回一个JSON字符串,但似乎你想要JSON对象。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

尝试不使用JSON.stringify

$.ajax({
        type: "POST",
        url: self.serverURI,
        data: self.gen_data(),
        dataType: 'json',
        success: function (result) 
        {
            //console.log(result);
            alert(JSON.stringify(result));
            //alert(result.a);
        },
        error: function (xhr, ajaxOptions, thrownError) 
        {
                console.log(xhr);
        }
    });