【问题标题】:How to parse tumblr JSON feed如何解析 tumblr JSON 提要
【发布时间】:2012-04-05 14:35:54
【问题描述】:

我需要从此 JSON 提要中获取常规标题和常规正文。我尝试了各种方法,但收效甚微。谁有解决办法?

http://clintonbeattie.tumblr.com/bio/json

谢谢, C

【问题讨论】:

标签: jquery json tumblr


【解决方案1】:

这不是 JSON,这是对 JSONP 的一种奇怪的看法。

如果您添加一个<script /> 标记并将src 设置为http://clintonbeattie.tumblr.com/bio/json,则全局变量tumblr_api_read 将指向具有响应信息的对象;

var tumblr_api_read = {
    "tumblelog": {
        "title": "First Title",
        "description": "",
        "name": "clintonbeattie",
        "timezone": "US\/Eastern",
        "cname": false,
        "feeds": []
    },
    "posts": [{
        "id": null,
        "url": "",
        "url-with-slug": "",
        "type": "regular",
        "date-gmt": " GMT",
        "date": "Wed, 31 Dec 1969 19:00:00",
        "bookmarklet": null,
        "mobile": null,
        "feed-item": "",
        "from-feed-id": 0,
        "unix-timestamp": 1333622193,
        "format": "html",
        "reblog-key": "TmN3ujDJ",
        "slug": "",
        "regular-title": "",
        "regular-body": ""
    }]
};

因此做这样的事情;

<script src="http://clintonbeattie.tumblr.com/bio/json"></script>
<script>
    // Use tumblr_api_read.

    alert(tumblr_api_read.tumblelog.title); // Shows "First Title"

    for (var i=0;i<tumblr_api_read.posts.length;i++) {
        var thisPost = tumblr_api_read.posts[i];

        alert("This post was created at " + thisPost.date);
    }
</script>

【讨论】:

  • 这似乎不起作用。警报永远不会发生。检查 Chrome 开发栏中的资源并声明获取请求已取消。
  • @Crashdesk:嗯,如果您的原始标头是他们不喜欢的东西,服务器似乎会返回 404...查看 API,这似乎不是记录在案的端点...你从哪里得到这个 URL 的? tumblr.com/docs/en/api/v2
  • 我创建了一个名为 bio 的页面,因此我想我会使用该 URL 来获取 json,因为它无法通过 clintonbeattie.tumblr.com/api/read/json 的正常过程访问。在浏览器中可读,但无法通过 js 调用访问
  • 有谁知道我可以访问简历页面中的数据吗?
  • @Crashdesk:你必须通过他们的 API:tumblr.com/docs/en/api/v2
【解决方案2】:

来自他们的API docs

JSON 输出

通过在调用读取 API 时使用 /api/read/json 而不是 /api/read,输出将作为 JSON 发送,并分配给名为 tumblr_api_read 的 Javascript 变量。

不是 JSON,甚至不是JSONP。他们正在返回文字 JavaScript。因此,您必须遵循他们的文档并执行以下操作:

<script type="text/javascript" src="http://clintonbeattie.tumblr.com/api/read/json"></script>

这将创建一个名为tumblr_api_read(即window.tumblr_api_read)的全局变量,它是一个对象字面量。

由于您使用的是 jQuery,您可以执行以下操作:

$.getScript("http://clintonbeattie.tumblr.com/api/read/json", function(script, textStatus, jqXHR) {
  console.log(window.tumblr_api_read.tumblelog.title);
});

这些人可以在他们的文档中链接到json.org,这让我很惊讶,但把事情搞砸了。

【讨论】:

  • 谢谢。它真的一团糟,这让我非常困惑。不过,我仍然找不到我创建的简历页面的提要。
  • 阅读文档at the bottom。您的页面不会显示,因为您只能获取 JSON 格式的帖子。但是,您可以获取 XML 格式的页面:http://(YOU).tumblr.com/api/pages
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 2013-01-30
  • 2019-01-09
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多