使用jQuery调用CoinMarketCap API,如何按索引获取data内指定嵌套对象?
如何通过索引获取CoinMarketCap API中嵌套对象的指定项?
嘿,我来帮你搞定这个问题!你遇到的核心卡点是:CoinMarketCap API返回的data是一个键值对对象(每个加密货币的ID作为键),而不是数组,所以没法直接用[2]这种数字索引来访问里面的项。不过别担心,我们可以把这个对象转换成数组,这样就能轻松按索引获取你要的瑞波币信息了。
具体解决方案步骤:
- 首先,在
$.getJSON的回调函数里,把param.data的所有值提取出来,转换成一个数组。这里可以用Object.values()方法,它会直接返回对象所有值组成的数组; - 因为数组是从0开始计数的,第三个元素对应的索引是
2,所以直接取数组的第2项就是瑞波币的信息; - 最后从这个对象里提取你需要的名称和价格即可。
完整的jQuery代码示例:
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) { // 将data对象的取值转换为数组,这样就能按索引访问了 const cryptoArray = Object.values(param.data); // 获取第三个元素(索引为2)—— 瑞波币的详细数据 const rippleData = cryptoArray[2]; // 提取货币名称和美元价格 const rippleName = rippleData.name; const ripplePrice = rippleData.quotes.USD.price; // 可以在这里处理数据,比如打印到控制台或者渲染到页面 console.log(`货币名称:${rippleName}`); console.log(`当前价格:$${ripplePrice.toFixed(2)}`); });
兼容旧浏览器的写法:
如果你的项目需要兼容不支持Object.values()的旧浏览器,可以用Object.keys()配合map()方法来转换:
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) { // 兼容旧浏览器的数组转换方式 const cryptoArray = Object.keys(param.data).map(key => param.data[key]); const rippleData = cryptoArray[2]; const rippleName = rippleData.name; const ripplePrice = rippleData.quotes.USD.price; console.log(`${rippleName} 的价格是:$${ripplePrice.toFixed(2)}`); });
这样就能精准获取到第三个位置的瑞波币数据啦!
内容的提问来源于stack exchange,提问作者LouisVuittonDon
相关产品推荐
相关产品推荐

