我试图在客户端和服务器之间发送/接收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;
}
不能在服务器
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]);
}
*/
读它在服务器上
$.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);
}
});
但它显示为:
data_list size: undefined
尝试读取数组元素导致的错误。
JSON.stringify()返回一个JSON字符串,但似乎你想要的JSON对象? – unicorn2
@ unicorn2我很困惑发送/接收,如何读取服务器和客户端的JSon内容。你能举个例子吗?我会为此感恩。 – arslan
@alim,尝试添加'processData:false'选项,或通过某个键传递JSON,例如:'data:{json:JSON.stringify(self.gen_data())}' –