Json在Javascript中获取所有嵌套元素

时间:2014-08-13 21:07:01

标签: javascript json loops nested

我有一个Json结构,我需要运行一些单元测试。结构如下所示。

{
tracks:{
    4j38f8-4j39fj-3j4j3j:{
        name:"my video track",
        mediaType:"VIDEO"
    },
    280248-248244-ttr24:{
        name:"my audio track",
        mediaType:"AUDIO"
    },
    280248-248244-ttr24:{
        name:"my audio track",
        mediaType:"AUDIO"
    }
}

在javascript中我有以下代码。

var data = JSON.parse(jsonFile.json);
if(data.4j38f8-4j39fj-3j4j3j.mediaType == "VIDEO")
{
    do something
}
else
{
    do something else
}
if(data.4j38f8-4j39fj-3j4j3j.mediaType == "VIDEO")
{
    do something
}
else
{
    do something else
}
if(data.4j38f8-4j39fj-3j4j3j.mediaType == "VIDEO")
{
    do something
}
else
{
    do something else
}

但是,我不知道会有多少曲目,我想要根据它的轨道类型而有所不同。这让我相信我应该遍历这个对象。然而,因为它不是一个数组,我需要得到循环中下一个对象的关键。我的问题是我该怎么做?

For element in tracks
{
    if element.mediaType = video
    {
        do one thing
    }
    else
    {
        do another thing
    }
}

1 个答案:

答案 0 :(得分:0)

使用for..in结构:

for (var key in data.tracks) {
    if (data.tracks.hasOwnProperty(key)) {
        if (data.tracks[key].mediaType === 'VIDEO') {
            // do one thing
        } else {
            // do another thing
        }
    }
}