1

英語のウィキペディアの記事のタイトルである WikipediaAPI を考えると、JSON を返す URL があります。

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>記事ごとに変化することを考えると、予測不可能です。

extractortitleの価値をどう捉えて再利用するか?

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 を使用すると、次のようなエレガントでありながら簡単な結果が得られます。

ここに画像の説明を入力

&explaintexthtml が必要な場合は削除してください。その他の機能については、Wikipedia APIを調べてください。

+1歓迎を奨励します。

于 2013-11-02T12:22:58.967 に答える