我正在尝试在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);
}
});
答案 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);
}