在 jQuery AJAX 中获取"无法读取未定义的属性"



我在从本地JSON文件中获取数据时遇到问题。

我有代码的平静

$.ajax({
method: 'GET',
url: './src/assets/api.json',
success: (function(data) {
$.each(data, function(index, val) {
// Code
console.log('Selling currency: ' + val.eur.pro);
})
}),
error: function() {
console.log('Something went wrong.');
}
})

这会在控制台中引发错误:

无法读取未定义的属性"pro">

我的 JSON 文件看起来像这样

{
"result": {
"date": "23.08.2017",
"eur": {
"kup": "119.0352",
"sre": "119.3934",
"pro": "119.7516"
},
"usd": {
"kup": "101.2032",
"sre": "101.5077",
"pro": "101.8122"
},
// other objects ...
}
}

我不知道为什么它会抛出这个错误。如果我从val.eur.pro中删除pro并像这样离开它val.eur它会很好地返回对象。我不知道我应该如何访问第三个值。

这可能有助于您 https://jsfiddle.net/rprxrhLp/

var data = {
"result": {
"date": "23.08.2017",
"eur": {
"kup": "119.0352",
"sre": "119.3934",
"pro": "119.7516"
},
"usd": {
"kup": "101.2032",
"sre": "101.5077",
"pro": "101.8122"
}
}
};
var keys = Object.keys(data.result);
for(var key in keys){
if( typeof data.result[keys[key]] === 'object'){
	$.each(data.result[keys[key]], function(i, v){
	console.log(keys[key] + ", " + i+ ": " + v)
})
	
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我使用局部data变量。 从结果中获取密钥,然后迭代它。

要获取pro值,只需执行此操作

var keys = Object.keys(data.result);
for(var key in keys){
if( typeof data.result[keys[key]] === 'object'){
console.log("Pro value:", data.result[keys[key]].pro);
}
}

希望这对您有所帮助。

最新更新