【问题标题】:Searching a Google Books JSON object with jQuery使用 jQuery 搜索 Google Books JSON 对象
【发布时间】:2013-05-30 01:40:57
【问题描述】:

我从 Google Books API 获取了一个图书列表。我已经将 JSON 对象保存在 localStorage 中,然后我在一个对象中再次解析它:

var books = JSON.parse(localStorage.books);

现在我想根据图书 ID 提取特定图书条目的信息。我已经设法找到一本书的 ID,将它们显示在一个列表中,但是一本书的 ID 和关于该书的其余信息是否有任何关联?如果是,您将如何从其 id 中获取特定书籍的所有数据?

一个 JSON 样本 Full API example of data

{
 "kind": "books#volume",
 "id": "HGsoQKfXs90C",
 "etag": "O6jaKOAAZvI",
 "selfLink": "https://www.googleapis.com/books/v1/volumes/HGsoQKfXs90C",
 "volumeInfo": {
  "title": "John D. Rockefeller",
  "subtitle": "Anointed with Oil",
  "authors": [
   "Grant Segall"
  ],
  "publisher": "Oxford University Press",
  "publishedDate": "2001-02-08",
  "description": "Chronicles the life and accomplishments of the philanthropist and industrialist who founded the Standard Oil Company.",
  "industryIdentifiers": [
   {
    "type": "ISBN_10",
    "identifier": "0195121473"
   },
   {
    "type": "ISBN_13",
    "identifier": "9780195121476"
   }
  ],
  "pageCount": 128,
  "dimensions": {
   "height": "25.00 cm",
   "width": "23.10 cm",
   "thickness": "1.50 cm"
  },

【问题讨论】:

  • @JeffS 你为什么要重新发布我在我的问题上也发布的链接?

标签: javascript jquery json ajax object


【解决方案1】:
function getBook(id){
    for(var i=0;i<books.items.length;i++){
        if(books.items[i].id === id){
            return books.items[i]; 
        }
    }
    return false;
}

var book = getBook('HGsoQKfXs90C');

【讨论】:

  • developers.google.com/books/docs/v1/reference/volumes/list - 作为参考,这将是更合适的 Google Books API 文档,显示如何为书籍返回 json。
  • 我不太擅长 JSON 或一般的数据结构。书的 id 是否与书的其余信息相关联?
  • 是的。这个函数表明了这一点。如果您传递如图所示的 ID,它将返回与该 ID 关联的整个图书对象。在我的示例中,我搜索 ID 'HGsoQKfXs90C' 并将匹配的书存储在变量 book 中。然后您可以参考etag 属性,例如:book.etag
  • 这是默认返回值,以防找不到您的书。如果在循环中没有找到任何与 ID 匹配的书,则代码只会到达该点。因此,如果 book 为 false 而不是 book 对象,则找不到匹配项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
相关资源
最近更新 更多