如何在此复杂JSON对象中获取ISBN_10标识符

时间:2013-02-27 14:58:55

标签: jquery json

我正在使用Google图书API来展示一些图书。

API返回一个包含许多信息的json对象,包括每本书。

"industryIdentifiers": [
   {
    "type": "ISBN_10",
    "identifier": "3640132114"
   },
   {
    "type": "ISBN_13",
    "identifier": "9783640132119"
   }
  ],

如何获取ISBN_10标识符?

我使用以下代码显示信息:

$.each(data.items, function(i,user){
var tblRow =
"<tr>"
+"<td><img src="+user.volumeInfo.imageLinks.smallThumbnail+"></td>"
..
+"</tr>"
$(tblRow).appendTo("#ergebnisse tbody");
});

1 个答案:

答案 0 :(得分:3)

如果我认为user.volumeInfo(在您的each圈内)是关于特定图书的信息,那么您可以通过以下方式找到ISBN_10值:

var isbn10;
$.each(user.volumeInfo.industryIdentifiers, function(index, entry) {
    if (entry.type === "ISBN_10") {
        isbn10 = entry.identifier;
        return false;
    }
});

基本上,industryIdentifiers是一个对象数组。我们可以使用$.each循环遍历数组,它将向我们传递数组索引和(更重要的是)条目。我们会查看每个条目的type,直到找到ISBN_10的条目为止。当我们找到它时,我们抓住它的值并打破$.each(通过返回false)。请注意,如果没有,isbn10将保留undefined

因此,即使我对user.volumeInfo的猜测错误,无论您从哪里得到industryIdentifiers,上述内容都会帮助您找到ISBN_10。