1

鉴于 WikipediaAPI(英文维基百科上的一篇文章的标题),我的 url 提供了一个 JSON :

var url = "http://en.wikipedia.org/w/api.php?action=query&prop=description&titles=Unicorn&prop=extracts&exsentences=10&explaintext&format=json";

响应如下所示:

{
    "query": {
        "pages": {
            "ramdom_number_here": {
                "pageid": ramdom_number_here,
                "ns": 0,
                "title": "Unicorn",
                "extract": "The unicorn is a legendary animal that has been described since antiquity as a beast with a large, pointed, spiraling horn projecting from its forehead."
            }
        }
    }
}

鉴于<ramdom_number_here>每篇文章的变化,因此是不可预测的。

如何把握extracttitle重用它的价值?

4

1 回答 1

3

它主要是攻击 API 的好 url、一个 JQuery $.getJSON 和一个传递项目 id 的机智技巧。在那里,使用Object.keys(data)[x]Object.keys(data)[i] 将数据坐标替换为标称路径。

  • Object.keys(data) -- 为您提供该级别的键列表。
  • 然后使用i= 目标数据的数字范围。对于第一个数据点,对于我们 [i]=[0]。

解决方案> JSfiddle

function WD(item) {
    url = "http://en.wikipedia.org/w/api.php?action=query&prop=description&titles=" + item.toString() + "&prop=extracts&exintro&explaintext&format=json&redirects&callback=?";
    $.getJSON(url, function (json) {
        var item_id = Object.keys(json.query.pages)[0]; // THIS DO THE TRICK !
        sent = json.query.pages[item_id].extract;
        result = "<b>En :</b> <t>" + item + "</t> <b>⇒&lt;/b> " + sent;
        $('#anchor1').append("<div>"+result+"</div>"); // transformation 
    });
}
WD("Dragon");

通过一些扩展,var list = ["dragon", "Unicorn", "Cat"]一个包装$.each()函数,一些快速的 CSS,我得到了一个优雅而简单的结果,例如:

在此处输入图像描述

&explaintext如果需要 html,请删除。深入了解Wikipedia API以获得更多功能。

鼓励 +1 欢迎。

于 2013-11-02T12:22:58.967 回答