JSON对象中的Javascript数组
我试图实现这种结构(一个内部带有数组的JSON对象): 但我失败了,尝试了各种方法,这是我正在进行的工作代码: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 =
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
}