如何通过Ajax访问嵌套的JSON对象?

时间:2018-08-06 16:19:04

标签: jquery ajax wordpress object

在我仍在学习的过程中,经过数小时的尝试,我仍然无法弄清楚如何在WP中管理该Ajax调用并使它正常工作。我想做的是将“价格”(USD)提取到变量中以备将来使用。

这是我的JSON对象:

{
"data": {
    "id": xx, 
    "name": "xx", 
    "symbol": "xx", 
    "rank": xx, 
    "quotes": {
        "USD": {
            "price": xx, 
            "volume_24h": xx, 
            "market_cap": xx, 
            "percent_change_1h": xx, 
        }
     }, 
     "last_updated": xx
  }, 
}

这是我目前正在做的事情:

(function(getPrice) {
    $j.ajax({
        url: 'https://widgets.coinmarketcap.com/v2/ticker/3012/',
        type: 'GET',
        async: false,
        data: 'data',
    }).then(function(data) {
        console.log(data);
    });
})();

这使我可以记录整个“数据”,但是在Google和StackOverflow之后,我仍然无法使用。我认为这只是“ data.quotes.USD.price”,但显然不是。

非常感谢我的每一个建议!

1 个答案:

答案 0 :(得分:2)

您需要两次data;一个是您的变量,一个是响应中的外部对象。正确的版本是:

console.log(data.data.quotes.USD.price);

var $j = jQuery;

(function(getPrice) {
  $j.ajax({
    url: 'https://widgets.coinmarketcap.com/v2/ticker/3012/',
    type: 'GET',
  }).then(function(data) {
    console.log(data.data.quotes.USD.price);
  });
})();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

还要注意,我删除了async: false(这是很糟糕的做法),不需要data: 'data'