ajax json解析以返回相关值

时间:2018-05-31 17:42:46

标签: json ajax api

我试图仅解析与某个“market_name”相关的信息,但我似乎无法弄清楚如何。 api位于https://stocks.exchange/api2/ticker,显示与整个交易所相关的信息。我只需要返回与我正在搜索的“market_name”相关的所有信息,例如ETH_BTC

的Ajax:

$.ajax({
    url: "https://stocks.exchange/api2/ticker",
    dataType: 'json',
    success: function(data) {
    last = data.last;
    console.log(last);
    $("#btcprice").text(last);
    },
    error: function() {
      //alert("Was unable to get info!");
    }
});

3 个答案:

答案 0 :(得分:1)

那是因为data是一个对象数组,而不是一个对象。

尝试:

$.ajax({
    url: "https://stocks.exchange/api2/ticker",
    dataType: 'json',
    success: function (data) {
        // find object
        var market = data.find(function (obj) {
            return obj.market_name == 'ETH_BTC';
        });    

        $("#btcprice").text(market.last);
    },
    error: function() {
      //alert("Was unable to get info!");
    }
});

答案 1 :(得分:1)

使用数组filter()方法过滤掉2market_name的记录。

ETH_BTC

<强>样本

&#13;
&#13;
array.filter(obj => {
  return obj.market_name == 'ETH_BTC'
});
&#13;
&#13;
&#13;

答案 2 :(得分:0)

$.ajax({
    url: "https://stocks.exchange/api2/ticker",
    dataType: 'json',
    success: function(data) {
    var results = [];
    var searchField = "market_name";
    var searchVal = "ETH_BTC";
    for (var i=0 ; i < data.length ; i++)
    {
        if (data[i][searchField] == searchVal) {
            results.push(data[i]);
        }
    }
    $("#btcprice").text(results[0].last);
    },
    error: function() {
      //alert("Was unable to get info!");
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这是一个简单的代码,您可以根据需要静态或动态地更改searchVal ......