我使用此https://api.coinmarketcap.com/v2/ticker/?limit=10 API查看不同加密货币的价格。
我的最终目标是从上到下循环,并获得具有相应价格的货币标题。但是,似乎我无法在"数据"中得到对象的索引。宾语。我无法用[]选择它,因为它不包含在数组中。
如果您查看https://api.coinmarketcap.com/v2/ticker/?limit=10,您会注意到"数据中的第三个项目" object是一个包含Ripple货币信息的对象。
如何仅从索引的值中单独获取此对象?
我顺便使用jQuery,访问这样的API:
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) {
});
答案 0 :(得分:1)
由于响应是包含data
作为另一个对象的对象,因此您可以使用for...of
循环遍历集合并应用逻辑。
以下是迭代并打印货币名称和价格的演示。
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
for (let [_, value] of Object.entries(response.data)) {
console.log(`Currency: ${value.name}, Price: $${value.quotes.USD.price}`);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
您可以获取对象的所有键,然后迭代到它,比较货币的名称。
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(param) {
var objkeys = Object.keys(param.data);
objkeys.forEach(function(item){
if(param.data[item].name==='Ripple'){
console.log(param.data[item])
}
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 2 :(得分:1)
您可以使用Object.values
将对象转换为数组。要通过数组循环,您可以使用forEach
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
Object.values(response.data).forEach(o => {
console.log(o.name, o.quotes.USD.price);
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
如果您想查找特定的name
,可以使用find
$.getJSON("https://api.coinmarketcap.com/v2/ticker/?limit=10", function(response) {
let toFind = 'Ripple';
let result = Object.values(response.data).find(o => o.name === toFind);
console.log(result.name, result.quotes.USD.price);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 3 :(得分:0)
您可以使用JSON.parse()方法解析对象中的JSON响应。之后迭代对象。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse