从JSON获取某些属性的值字符串

时间:2013-08-07 13:41:26

标签: javascript json loops

我正试图通过他们的API从Google Books书架中获取一串ISBN。 Here's我的尝试无效。 (我正在尝试使用this snippet。)

$.getJSON("https://www.googleapis.com/books/v1/users/115939388709512616120/bookshelves/1004/volumes?key=MYAPIKEY", function (data) {
console.log(data);

var allIsbns = [];

for (i = 0; i < data.items.volumeInfo.industryIdentifiers[0].identifier.length; i++) {
allIsbns.push(data.items.volumeInfo.industryIdentifiers[0].identifier[i]);
}

alert(allIsbns);
});

fiddle

1 个答案:

答案 0 :(得分:1)

查看记录的对象,data.items是一个数组(看起来长度为data.totalItems)。此外,industryIdentifiers[0].identifier似乎是一个字符串,而不是一个数组。因此,我认为您希望循环使用data.items

同样值得注意的是,除非规范调用预定义的订单,否则您可能不应该通过industryIdentifiers上的显式索引。我建议使用type === "ISBN_10"找到标识符:

for (var i = 0; i < data.items.length; i++) {
    for (var j = 0; j < data.items[i].volumeInfo.industryIdentifiers.length; j++) {
        if (data.items[i].volumeInfo.industryIdentifiers[j].type === "ISBN_10")        
            allIsbns.push(data.items[i].volumeInfo.industryIdentifiers[j].identifier);
    }
}