javascript - 当父键名称未知时访问 JSON 项

标签 javascript jquery json wikipedia-api wikidata

我正在从维基百科的 API 请求 JSON,网址为

http://en.wikipedia.org/w/api.php?action=query&prop=description&titles=WTO&prop=extracts&exsentences&explaintext&format=json

响应如下所示:

{
    "query": {
        "pages": {
            "ramdom_number_here": {
                "pageid": ramdom_number_here,
                "ns": 0,
                "title": "Hello",
                "extract": "Hello world! Enchanté to meet you"
            }
        }
    }
}

鉴于ramdom_number_here更改每个请求(因此我们不知道),如何访问extractitle的数据?

最佳答案

使用Object.keys(data)[x]将主格路径替换为数据的坐标。

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

解决方案> JSfiddle :

function WD(val) { // input
    target_API_url = "http://zh.wikipedia.org/w/api.php?action=query&prop=description&titles=" + val.toString() + "&prop=extracts&exintro&explaintext&format=json&redirects&callback=?";
    $.getJSON(target_API_url, function (json) {
        trad = json.query.redirects[0].to; // no "var", variable is global
        var item_id = Object.keys(json.query.pages)[0]; // THIS DO THE TRICK !
        sent = JSON.stringify(json.query.pages[item_id].extract);
        result = "<b>En:</b> "+val.toString() + ", <b>Zh: </b>"+trad.toString() +  "<br /><b>⇒</b>" + sent.toString();
        $('p').html(result); // transformation 
    });
};
WD("WTO");

鼓励+1欢迎。

关于javascript - 当父键名称未知时访问 JSON 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19608227/

相关文章:

c# - .NET核心: Remove empty array from Json response

javascript - 使 div 适合内容的大小而不重叠文本?

javascript - 设置嵌套循环值返回错误 "e.replace is not a function"

JSON 编码自定义类不调用覆盖默认值

jquery - Google Dev Tools 在未设置断点时停止执行

javascript - JsGrid 将嵌套对象加载到表中

javascript JSON.parse 无法从 PHP json_encode 解析\t

javascript - 模块化模式与原型(prototype) - Nodejs?

javascript - Swiper 库无法使用 Bootstrap 选项卡加载

javascript - 如何对 RethinkDB 中的过滤组执行映射缩减?