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

时间:2017-08-25 10:36:09

标签: jquery json 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 ...
  }
}

我不知道为什么会抛出这个错误。如果我要从pro中移除val.eur.pro并将其保留为此val.eur,则会将对象恢复正常。我不知道我怎么想访问第三个值。

1 个答案:

答案 0 :(得分:1)

这可能会对您有所帮助https://jsfiddle.net/rprxrhLp/



Class

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>变量。 从结果&amp;获取密钥然后迭代它。

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

pro

希望这会对你有所帮助。