我试图弄清楚如何在JSON对象中定义数组。 例如,
//Lets create a JSON Object
var foo = {
"id" : "",
"data" : [
{"data_id" : "", "data_status" : "", "dataweight" : ""}
]
};
如果我想访问第一行数据,似乎是正确的。
现在我如何在数组的多行中推送数据?例如:
foo.data[4].data_id = something;
我想我误解了如何定义JSON对象。或者也许有一些技巧可以访问JSON对象中未定义的长度数组,但我不知道它们。
答案 0 :(得分:1)
您可以typeof obj === "undefined"
示例,检查foo.data[4]
是否未定义,如果未定义则启动它。
if ( typeof foo.data[4] === "undefined" ) foo.data[4] = {};
您现在可以指定foo.data[4].data_id = something;
注意:这是假设定义了foo
和foo.data
答案 1 :(得分:0)
数组元素foo.data[4]
尚不存在。在更改其中一个属性之前,请先尝试创建它。
foo.data[4] = {};
foo.data[4].data_id = "Something";
答案 2 :(得分:0)
如果您尝试推送,请尝试
foo.data.push(something);
为推送操作分配数组索引不是正确的方法,因为索引可能不存在,因此请进行push
操作。
希望这会对你有所帮助,
答案 3 :(得分:0)
只要知道数组大小
,就可以这样做
var foo = {
"id" : "",
"data" : [
{"data_id" : "", "data_status" : "", "dataweight" : ""}
]
};
var arraySize = 4;
for(var i = 1 ; i < arraySize ; i++){
var el = {"data_id" : i,"data_status" : "", "dataweight" : ""} ;
foo.data.push(el);
}
console.log(foo)
&#13;