从json中提取值

时间:2014-04-10 13:34:05

标签: javascript json loops

我在尝试弄清楚如何从这个Json中提取名称和网址时遇到了一些麻烦。

这是我的Json和Javascript。这成功地循环并提取每个对象,例如“1977”部分。但我需要提取名称和网址并显示它们。有人可以帮忙吗?这很简单,我几乎不敢相信。

[{
    "1977": [{
        "name": "my name 1",
        "url": "myurl 1"
    }],
    "2104": [{
        "name": "my name 2",
        "url": "myurl 2"
    }]
}]

var obj = JSON.parse(jsonString); //a parses above json
for (var i = 0; i < obj.length; i++) { 
    console.log(obj[i]); //returns the object
}

5 个答案:

答案 0 :(得分:2)

您需要遍历对象并仅选择所需的属性,例如

for (var i = 0; i < obj.length; i++) {
    for (var year in obj[i]) {
        console.log("Current year is", year);
        console.log(obj[i][year][0].name);
        console.log(obj[i][year][0].url);
    }
}

<强>输出

Current year is 1977
my name 1
myurl 1
Current year is 2104
my name 2
myurl 2

答案 1 :(得分:1)

for (var i = 0; i < obj.length; i++) { 
   console.log(obj[i][0].name); 
   console.log(obj[i][0].url); 
} 

答案 2 :(得分:0)

以下是两种访问该名称的方法。

obj[0]['1977'][0]['name']

obj[0]['1977'][0].name

答案 3 :(得分:0)

for (var i = 0; i < obj.length; i++) {
    for (var j=0; j<obj[i].length; j++) {

        console.log(obj[i][j][0].name);
        console.log(obj[i][j][0].url);
    }
}

答案 4 :(得分:-1)

您可以使用点运算符

进行简单提取
for (var i = 0; i < obj.length; i++) {
    var og = obj[i];
    Object.keys(og).forEach(function (key) {  //missed to loop through it
        console.log(og[key][0].name);
        console.log(og[key][0].url);
    });

}