jQuery没有生成我的JSON



我正在尝试从表单生成JSON文档。我想要的输出如下所示:

{
    "name": "joe-pc",
    "device_type": "server",
    "os": "windows",
    "info": [
        {
            "net_info": [
                {
                    "ip": "192.168.0.5",
                    "name": "eth0"
                },
                {
                    "ip": "192.168.0.28",
                    "name": "eth1"
                }
            ]
        },
        {
            "OS_info": [
                {
                    "name": "windows"
                },
                {
                    "build": "123.1.3"
                }
            ]
        },
        {
            "whatever_info": [
                {}
            ]
        }
    ]
}

我得到的是:

{"info":[{}]}

代码截图:

$('#top_three_next').click(function (e) {
        var json_obj = new Object();
        json_obj.name = $('#name').val(); //manditory
        json_obj.device_type = $('#device_type').val(); //manditory
        json_obj.os = $('#os').val(); //not a manditory field
        // is this not available outside the function? 
        // even if I declare json_obj as a global var?
    });

完整代码:

http://jsfiddle.net/jdell64/Tu9bB/(从 JS 窗格中的第 93 行开始)。

首先,你在jsfiddle上的代码看起来有点混乱:)

明白了

var json_obj = new Object();

第 95 行的声明。根本不需要此行。因为您已经在 JS 的开头定义了空json_obj。并且此声明覆盖全局变量并使用回调范围内的局部变量,并且在回调结束后缺少其中填写的所有数据。如果删除该行,则末尾将得到以下结构。

{"name":"1","device_type":"2","os":"3","info":[{}]}

编辑:另外,191-192行对我来说完全不清楚:

infoList.push(infoDocs);
json_obj.info = infoList;

infoDocsinfoList 变量都没有在事件处理程序函数中定义,但它们也没有全局定义!

相关内容

  • 没有找到相关文章

最新更新