获取JSON对象属性?

时间:2016-10-09 15:14:26

标签: javascript json

我正在尝试在JSON数据中获取'Kind'的属性信息:

https://www.reddit.com/r/javascript/comments/29bj6h/how_to_learn_javascript_properly/.json

我目前刚刚将18'未定义'打印到控制台。

我哪里错了?

干杯

$(document).ready(function(){
        var jsonData = $.getJSON('http://www.reddit.com/r/javascript/comments/29bj6h/how_to_learn_javascript_properly/.json');

        for(var key in jsonData) {
            console.log(key.kind);
        }
});

4 个答案:

答案 0 :(得分:1)

$.getJSON返回promise(更具体地说,是实现promise接口的jqXHR对象),而不是将HTTP响应解析为JSON的结果。

此外,当您使用in迭代对象时,您获得的值将是作为字符串的属性的名称。这些没有kind属性。

要转到kind,您需要阅读,而不是属性名称。

最好避免使用in数组。 forEach通常是一种更好的方法。

function processResponse(parsed_data) {
    parsed_data.forEach(processItem)
}

function processItem(current_value) {
    console.log(current_value.kind);  
}

var jqXHR = $.getJSON('http://www.reddit.com/r/javascript/comments/29bj6h/how_to_learn_javascript_properly/.json');

jqXHR.done(processResponse);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

$.getJSON is to be written as below

$(document).ready(function(){
    var jsonData = $.getJSON('http://www.reddit.com/r/javascript/comments/29bj6h/how_to_learn_javascript_properly/.json', function(jsonData) {
       $.each( jsonData, function( key, val ) {
         console.log(val.kind);
       });
    });
});

答案 2 :(得分:-1)

您需要将成功回调参数传递给getJson函数。 就像下面的代码段

var jsonData = $.getJSON('https://www.reddit.com/r/javascript/comments/29bj6h/how_to_learn_javascript_properly/.json', function(response) {
        response.forEach(function(key) {
          console.log(key.kind)
        })
      });

https://developer.xamarin.com/guides/android/under_the_hood/architecture/

答案 3 :(得分:-2)

仅打印显示结果未定义的键。当你只拿钥匙时,它会显示钥匙。

for(var key in jsonData) {
    console.log(key);
}