从JSON数据中仅选择特定值

3

编辑 - 将问题标记为重复的目的是什么?赚取一些积分并获得一点聪明的踢吗?您无法知道此问题是否会帮助某人。这个“重复”的问题的答案不能回答我有限知识中的问题,但回答了我的问题的绅士。

我想从JSON数据列表中选择一个值,即24小时价格百分比变化:

{
    "id": "stellar", 
    "name": "Stellar", 
    "symbol": "XLM", 
    "rank": "6", 
    "price_usd": "0.570132", 
    "price_btc": "0.00005009", 
    "24h_volume_usd": "672209000.0", 
    "market_cap_usd": "10187093680.0", 
    "available_supply": "17867956333.0", 
    "total_supply": "103629819514", 
    "max_supply": null, 
    "percent_change_1h": "1.8", 
    "percent_change_24h": "16.65", 
    "percent_change_7d": "23.95", 
    "last_updated": "1516839244"
} 

目前,我的代码仅用于测试我已完成部分是否有效,它只返回[object Object]

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
 $(document).ready(function () {
  $.getJSON('https://api.coinmarketcap.com/v1/ticker/stellar/',
  function (data) {
   document.body.append(data);
  });
 });
</script>

我想要分离出 - 首先只展示 "percent_change_24h" ,然后从那里开始工作。
谢谢。

解析数据 JSON.parse(data) - Chase Choi
$.getJSON可以自动完成这个任务。 - Barmar
在这种情况下,OP在他的“代码请求”中处理的不是JSON。 - Jaromanda X
你从URL获取的JSON数据是一个数组。请使用数组索引来获取你想要的数据。 - Jim
2个回答

4

好的,您可以直接使用该键 percent_change_24h 进行访问:

var data = {
  "id": "stellar",
  "name": "Stellar",
  "symbol": "XLM",
  "rank": "6",
  "price_usd": "0.570132",
  "price_btc": "0.00005009",
  "24h_volume_usd": "672209000.0",
  "market_cap_usd": "10187093680.0",
  "available_supply": "17867956333.0",
  "total_supply": "103629819514",
  "max_supply": null,
  "percent_change_1h": "1.8",
  "percent_change_24h": "16.65",
  "percent_change_7d": "23.95",
  "last_updated": "1516839244"
};

console.log(data['percent_change_24h']);
document.body.append(data['percent_change_24h']);
// in your case document.body.append(data['percent_change_24h']);

希望这能帮到你!

3

https://api.coinmarketcap.com/v1/ticker/stellar/ 返回一个数组:

[
    {
        "id": "stellar", 
        "name": "Stellar", 
        "symbol": "XLM", 
        "rank": "6", 
        "price_usd": "0.566242", 
        "price_btc": "0.00004991", 
        "24h_volume_usd": "674523000.0", 
        "market_cap_usd": "10117586651.0", 
        "available_supply": "17867955133.0", 
        "total_supply": "103629819514", 
        "max_supply": null, 
        "percent_change_1h": "-0.26", 
        "percent_change_24h": "16.45", 
        "percent_change_7d": "21.53", 
        "last_updated": "1516840744"
    }
]

So in order to get access to the percent_change_24h field you need data[0].percent_change_24h

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
                $.getJSON('https://api.coinmarketcap.com/v1/ticker/stellar/',
                function (data) {
                    document.body.append(data[0].percent_change_24h);
                });
        });
    </script>


这个有效,但是为什么要加上 [0] 呢? - Alb
1
@Alex 因为返回的数据是一个数组,且只有一个元素(其索引为0),所以我们使用 data[0] 来获取该对象,然后使用 . 来获取特定属性。 - Kirill Simonov
@Alex 不用谢! - Kirill Simonov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接