javascript - 如何动态生成JSon对象?

标签 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

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

最佳答案

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);
        }
    });

关于javascript - 如何动态生成JSon对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240548/

相关文章:

javascript - 无法将表单数据推送到 JSON 文件中

javascript - JSON 格式问题?

javascript - 仅在 10 秒后刷新页面时才执行 JavaScript 代码?

javascript - 将 HTML5/CSS3 行为引入旧浏览器 (IE) 的 Js 脚本分解

javascript - Jquery - 检查页面加载时的所有复选框

php - 如何解析包含 PHP 对象数组的 JSON 对象?

c# - 通过 AJAX 从 MVC 返回 JSON

javascript - 使用 jQuery 保存多次点击而不是 1 次

javascript - 如何从加载的 JavaScript 文件访问在 yepnope.js 中声明的变量?

Jquery 创建的列表没有样式