【问题标题】:Google Books API JSON object troubleGoogle Books API JSON 对象问题
【发布时间】:2015-07-14 22:04:56
【问题描述】:

我正在尝试从 Google Books API 中提取并将前 10 个结果中的标题插入到网页中。我让网站拉出正确的请求,并让以下回调函数处理结果

function insert(books) {
    var list = books.items;
    var i;
    for(i = 0; i < 10; i++){
        var title = list[i].title;
    var tag = "result" + i;
    var x = document.getElementById(tag);
    x.innerHTML = title;
    }
}

为方便起见,假设进行了以下调用

<script src="https://www.googleapis.com/books/v1/volumes?q=Way of Kings&filter=partial&callback=insert"></script>

现在它在应该插入标题的每个地方都插入了“未定义”一词。我在这里找不到错误。

【问题讨论】:

    标签: javascript json google-books


    【解决方案1】:

    响应数据已将title 放置在volumeInfo 对象中。

    替换:

    var title = list[i].title;
    

    与:

    var title = list[i].volumeInfo.title;
    

    【讨论】:

    • 我现在看到了音量信息级别.....这些对象需要更积极地添加标签,这样我才能更清楚地看到级别!!!谢谢!
    • 没问题!您可以尝试使用 jsonlint.com 或支持 JS / JSON (自动)格式化的文本编辑器。对于它的价值,这里有一个带有缩进 JSON 的 pastebin:pastebin.com/CpMg92yg
    • 我使用了 jsonlint,但我承认我没有在检查中包含 json 对象,因为我认为我掌握了对象的结构并认为它一定是我遗漏的语法错误...... ..哎呀
    • 哦,我明白你的意思了,为了帮助解析一个 json 对象,你可以将它粘贴进去,它会为你更好地构建它。很好的提示。
    • 是的,如果您没有可以为您执行此操作的 IDE,那么它的格式设置很好。
    【解决方案2】:

    title 似乎从返回集合上的 volumeInfo 对象中脱落。这对我有用:

    var title = list[i].volumeInfo.title;
    

    例子:

    https://jsbin.com/puyayamuwi/edit?html,output

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 1970-01-01
      • 2013-05-30
      • 2014-01-22
      • 1970-01-01
      • 2015-11-13
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多