JSON对象中的Javascript数组

JSON对象中的Javascript数组,javascript,jquery,json,object,Javascript,Jquery,Json,Object,我试图实现这种结构(一个内部带有数组的JSON对象): 但我失败了,尝试了各种方法,这是我正在进行的工作代码: var data = new Array(); data['settings'] = []; var i = 0; var inputName, value; for (i; i < inputs.length; i++){ inputName = $(inputs[i]).attr('name'); value =

我试图实现这种结构(一个内部带有数组的JSON对象):

但我失败了,尝试了各种方法,这是我正在进行的工作代码:

var data = new Array();
    data['settings'] = [];
    var i = 0;
    var inputName, value;
    for (i; i < inputs.length; i++){
        inputName = $(inputs[i]).attr('name');
        value = $(inputs[i]).val();
        data['settings'][inputName] = value;
    }
    data['page_id'] = page_id;
var data=new Array();
数据['settings']=[];
var i=0;
变量inputName,值;
对于(i;i

因此,我知道变量名与所需示例不同,但您得到了一般要点!目前,它只是使数据成为一个空数组。但我需要将其设置为JSON对象,并将其发送到服务器

使用
[]
新建数组()
初始化数组;你所追求的(当你试图将键映射到值时)是对象;使用
{}
新对象()
初始化

var data = {};
data['settings'] = {};
var i = 0;
var inputName, value;
for (i; i < inputs.length; i++){
    inputName = $(inputs[i]).attr('name');
    value = $(inputs[i]).val();
    data['settings'][inputName] = value;
}
data['page_id'] = page_id;

您引用的是一个JavaScript对象,其中包含一个JavaScript数组,看不到JSON*

要创建它,我认为您根本不需要数组,只需要一个具有嵌套对象的对象:

var data = {
    settings: {},
    page_id:  page_id
};
var i, input;
for (i = 0; i < inputs.length; i++){
    input = $(inputs[i]);
    data.settings[input.attr('name')] = input.val();
}
…或使用括号表示法和字符串名称:

在后一种情况下,可以对字符串使用任意表达式,例如:

x = obj["f" + "o" + "o"];
JavaScript还具有文本对象初始值设定项,您可以使用该初始值设定项创建具有属性的对象:

obj = {foo: "bar"};
它创建一个对象,该对象的属性名为
foo
,值为
“bar”
,并将该对象指定给
obj
变量

再看看上面的代码块:

  • 我们使用属性
    设置
    页面id
    创建一个对象<代码>设置
    使用空白对象初始化<代码>页面id用
    页面id
    变量的值初始化

  • 然后我们循环查看您的
    输入
    ,并使用每个输入的名称将属性添加到
    设置
    ,将属性的值设置为输入的值

  • 那么让我们假设我们有

    <input name="oneField" value="bar">
    <input name="anotherField" value="bang">
    <input name="yetAnotherField" value="cool">
    

    *是一种文字符号。当您编写类似
    var data={…}在代码中,您只是在使用JavaScript。JSON是JavaScript文本语法的一个子集,它被设计为易于解析,因此,例如,它可以方便地在数据存储中存储任意复杂数据,或者从服务器检索数据。检索包含数据的字符串,然后解析该字符串以在内存中构建对象结构

    var data = {
            settings: {}
        };
        var inputName, value;
        for (var i=0; i < inputs.length; i++){
            inputName = $(inputs[i]).attr('name');
            value = $(inputs[i]).val();
            data.settings[inputName] = value;
        }
        data.page_id = page_id;
    
    var data = {
        settings: {},
        page_id:  page_id
    };
    var i, input;
    for (i = 0; i < inputs.length; i++){
        input = $(inputs[i]);
        data.settings[input.attr('name')] = input.val();
    }
    
    x = obj.foo;
    
    x = obj["foo"];
    
    x = obj["f" + "o" + "o"];
    
    obj = {foo: "bar"};
    
    <input name="oneField" value="bar">
    <input name="anotherField" value="bang">
    <input name="yetAnotherField" value="cool">
    
    {
        settings: {
            oneField: "bar",
            anotherField: "bang",
            yetAnotherField: "cool"
        },
        page_id:  page_id
    }