我有以下结构:
var data = {
"Form" : ["img1","img2"],
"Provider" : ["img1","img2"]
};
我想在Provider下面添加子对象,像这样:
var data = {
"Form" : ["img1","img2"],
"Provider" : ["Memorial1" : "img1","img2"],
["Memorial2" : "img1","img2"]
};
我用下面的代码试了试:
obj['Provider'].push({
"Memorial1" : ["img1"]
});
我得到:
{
"Form" : ["img1","img2"],
"Provider" : [{"Memorial1" : ["img1"]},
{"Memorial1" : ["img1"]}]
};
我无法从上面检索memoral1值,我尝试了这个:
data['Provider']['Memorial1']
返回undefined
谁能告诉我我做错了什么?更新:我找到了解决方案:
var data ='{"Form":[],"Provider":[{"Memorial" : ["img2"]},{"Memorial2":["img3"]}]}'; //correct format
var data = JSON.parse(data); // parse the json
alert(data['Provider'][0]['Memorial1']); // returns img2
alert(data['Provider'][0]['Memorial2']); // returns img3
data['Provider']
为数组。因此,要获得第一个条目的Memorial1
,您可以执行:
data['Provider'][0]['Memorial1']
其中[0]
表示数组对第一个表项的访问。然后,[1]
将是第二个,依此类推。
找到解决方案:
var data ='{"Form":[],"Provider":[{"Memorial" : ["img2"]},{"Memorial2":["img3"]}]}'; //correct format
var data = JSON.parse(data); // parse the json
alert(data['Provider'][0]['Memorial1']); // returns img2
alert(data['Provider'][1]['Memorial2']); // returns img3