将嵌套JSON迭代到对象数组(JavaScript)

时间:2015-10-05 21:54:22

标签: javascript arrays json angularjs angularjs-ng-repeat

您好我得到了这样的JSON响应:

{
"20150917":
 {
     "Daily01sec":
        {
            "TG01152600000": "\/20150917\/Daily01sec\/TG0115260.bin",
            "TG01152600600": "\/20150917\/Daily01sec\/TG0115260.bin"
        }
    },
"201510":
    {
        "05":
        {
            "Daily01sec":
            {
                "TG01152780600": "\/201510\/05\/Daily01sec\/TG01152780600.bin"                       
            }
        }
    },
"201509":
    {
        "05":
        {
            "Daily01sec":
            {
                "TG01152780600": "\/201510\/05\/Daily01sec\/TG01152780600.bin"                     
            }
        }
    }
}

我想要一个索引数组及其对应数据的值。

我想要数据[“20150917”],数据[“201510”],数据[“201509”] 以及它的相应信息。

实际上,嵌套数据将是嵌套数据的数组,

可以使用angularJS ng-repeat进行解析吗?任何想法?

1 个答案:

答案 0 :(得分:1)

在JavaScript中,对象是一个关联数组。

换句话说,FunnyColumn[Int]myobj.data相同 - 两者可以互换使用。所以你所要做的就是解析你的JSON(如果它还没有),你就可以了。

myobj['data']

http://jsfiddle.net/byjawop8/

修改

您正在寻找data = JSON.parse(json); console.log(data['20150917']); 语法,如下所示:

for..in

http://jsfiddle.net/yjedwLws/1/

再次编辑

我在上次编辑时给了你所需要的东西,但我会再给你一个提示。这个函数遍历JSON,只要它按照你在上面发布的方式进行格式化,就会将整个事物转换成一个你可以轻松迭代的数组。

for(index in json){
    document.getElementById('r').insertAdjacentHTML('beforeEnd', index+" " + json[index]['05']['Daily01sec']['TG01152780600'] + "<br>");
}

另一个小提琴:http://jsfiddle.net/yjedwLws/2/