1

API を介して Google ブックスの本棚から ISBN の文字列を取得しようとしています。これがうまくいかない私の試みです。(このスニペットを使用しようとしています。)

$.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);
});

フィドル

4

1 に答える 1

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);
    }
}
于 2013-08-07T13:50:09.217 に答える