javascript中的JSON多维数据



我有以下结构:

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

相关内容

  • 没有找到相关文章