javascript - 为什么我的代码没有获取 JSON 值?

标签 javascript json

        function getResults(){
            var text = encodeURIComponent(searchField.val().trim());
            $.ajax({
                type: "GET",
                url: "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&format=json&titles=" + text,
                dataType: "jsonp",
                success: function(data){
                    showResults(data, text);
                }
            });
    }

    function showResults(data, text) {
            results.show();
            var query = "https://en.wikipedia.org/wiki/" + text;
            for (var id in data.query.pages) {
                    var code = "<a href=" + query + " class='results'>" + "<div class='results'>";
                    code = code + "<strong>" + id.title + "</strong>";
                    code = code + "<br>";
                    code = code + id.extract;
                    code = code + "</div></a>"
                    $(code).appendTo(results); 
            }
    }

在 showResults 函数中,它显示 id.title 和 id.extract 为未定义。这是为什么?我做错了什么?

最佳答案

当你这样做时:

for (var id in data.query.pages)

id 变量填充有属性名称,该名称只是一个字符串。如果您想获取该属性的值,则必须引用该属性的值,如下所示:

data.query.pages[id]

或者,如果您想要从中获取 .title 的对象,那么您将需要

data.query.pages[id].title

data.query.pages[id].extract

关于javascript - 为什么我的代码没有获取 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381672/

相关文章:

javascript - 如何动态/响应式更改 jQuery 日期选择器的月数

javascript - 阅读更多 阅读更少 陷入 Angular

javascript - appendChild 返回无法读取未定义的属性 'containerDiv'

javascript - 如何在 $.post() | 上发送 JSON 数据jQuery

java - org.json.JSONException : End of input at character 0 of

android - 从 maps.googleapis.com 获取 JSON 数据时出错

java - GSON:使用 gson.toJson 将 Java 对象转换为 JSON 时缺少字段

javascript - 在 SWT 浏览器上等待 javascript 的响应

javascript - 如何用值检索键

php - 从数据库中的产品生成 JSON,只取最后一行