0

我知道已经有一百个“解析 json”问题 - 但我找不到一个与我自己的情况相匹配的解决方案。

我收到与此类似的 JSON:

{    
"parent:array": [
    {
        "child:value": "test1",
        "child:array": [
            {
                "child:subvalue": "test3"
            }
        ]
    },
    {
        "child:value": "test2",
        "child:array": [
            {
                "child:subvalue": "test4"
            }
        ]
    }
]
}

我可以child:value通过执行以下操作(responseJSON 在哪里)来访问:

var parameters = response['parent:array'];
$.each(parameters, function (idx, data) {
    var childValue = data['child:value'];
});

但是,我还无法检索child:subvalue。它可以作为 的一部分来完成each吗?

我尝试了以下方法但没有成功:

response['parent:array']['child:array']

和...

var childSubvalue = data['child:array']['child:subvalue'];
4

3 回答 3

2

"child:array"是一个数组,所以你需要给一个索引来选择,像这样:

var childSubvalue = data['child:array'][0]['child:subvalue'];
于 2013-08-20T17:47:17.747 回答
1

一旦你的 json 有效:

$.each(parameters, function (idx, data) {
    var childValue = data['child:value'], childArray = data['child:array'];
    $.each(childArray, function(i, d) {
        alert(d['child:subvalue']);
    });
});

小提琴

于 2013-08-20T18:43:40.680 回答
0

使用 array.forEach 遍历外部和内部数组;

var json = {    
"parent:array": [
    {
        "child:value": "test1",
        "child:array": [
            {
                "child:subvalue": "test3",
            }
        ]
    },
    {
        "child:value": "test2",
        "child:array": [
            {
                "child:subvalue": "test4"
            }
        ]
    }
]
}

json["parent:array"].forEach(function(parent) {
    console.log(parent["child:value"]);
    parent["child:array"].forEach(function(child) {
        console.log(child["child:subvalue"]);
    });
});
于 2013-08-20T18:31:01.623 回答