【问题标题】:Goodreads API Get ReviewsGoodreads API 获取评论
【发布时间】:2021-08-26 04:08:45
【问题描述】:

我希望从 Goodreads API 中检索某本书的评论。我在 API 方面相对较新。

这里是 API 文档的链接:https://www.goodreads.com/api#book.show

我创建了这个基本代码,它打印出 Success,但没有结果。数据:对象文档。这是我的代码:

$.get("https://www.goodreads.com/book/isbn?format=xml&key=d9xonLKxHDCI5HF1mHjbQ&isbn=9781843589501", function(data, status){
    alert("Data: " + data + "\nStatus: " + status);
});

为了显示结果,我缺少什么? 应用

【问题讨论】:

  • 您可以通过将format=xml更改为format=json来调整返回数据的格式。然后尝试在控制台中打印出来而不是警告它。 alert("Data: " + data + "\nStatus: " + status); 也会输出一个字符串。您应该使用console.log("Data: ", data, "Status: ", status); 来输出对象
  • 我想使用 XML,使用 JSON 要困难得多,我需要有我似乎找不到的用户 ID,并了解如何使用 OAuth。我更想知道如何将 XML 数据转换为可读的 html 格式 @MattO'Connell

标签: javascript ajax api


【解决方案1】:

我使用了一个外部库,名为:xml2js

这是一个代码 sn-p,用于将返回值作为对象。

var parseString = require("xml2js").parseString;


request(options)
.then(function(data) {
  var xml = data;

  parseString(xml, { trim: true }, (err, result) => {
    if (err) //do something
    else //something else

因此,在这里,您获取数据,将其转换为 JSON,然后您可以相应地按照您的意愿行事。不过,请意识到您在这里有一个回调!

【讨论】:

    【解决方案2】:

    返回的结果是 XML 格式。您需要在客户端有一些东西来读取检索到的 XML。看看下面的例子https://api.jquery.com/jQuery.parseXML/

    【讨论】:

    • 但我不知道 xml 对象中的标签,所以很难显示它@user3509208
    • 查看示例链接。例如 $title = $xml.find( "title" );-- 应该返回第一个值 使用类似下面的东西 $(document).ready(function(){ $.ajax({ type: "GET", url: “data.xml”,你的 url 数据类型:“xml”,成功:function(xml) { $.parseXML(xml).find('Table').each(function(index){ var provider = $(this). find('Provider').text(); var channel = $(this).find('FeedCommonName').text(); var hd = $(this).find('FeedIsHD').text(); $ ('.box ul').append('
    • '+channel+'
    • '); }); } }); });
  • 您也可以发布您正在使用的整个代码。将在我的本地运行,看看可能是什么问题。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签