如何解析tumblr JSON提要

时间:2012-04-05 14:35:54

标签: jquery json tumblr

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

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

谢谢, ç

2 个答案:

答案 0 :(得分:4)

这不是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>

答案 1 :(得分:2)

来自API docs

  

JSON输出

     

通过在调用Read 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,但是这很糟糕。