我在谷歌搜索了过去2个小时,并且使用了所有类型的代码,甚至尝试过XML php(结果证明速度很慢)。我还没有找到解决办法!
这就是我想要的: 我需要使用jQuery或javascript搜索此JSON文件https://s2.coinmarketcap.com/generated/search/quick_search.json,以最快者为准。我想搜索" name"和"符号"用我指定的字符串。
搜索时,总共会有5个结果记录到控制台中。当它登录到控制台时,它必须告诉我" name"和"排名"结果的价值。
有人可以帮帮我吗?
答案 0 :(得分:0)
基于您已经能够获取数据的假设(quickSearchResults),解析函数将如下所示:
function findElementInData(dataPoints, nameOrSymbol) {
return dataPoints.filter(point => point.name == nameOrSymbol || point.symbol === nameOrSymbol)
.map(point => {
return { name: point.name, rank: point.rank }
});
}
var elementsByName = findElementInData(quickSearchResults, 'Bitcoin');
console.log(elementsByName); // [{name: "Bitcoin", rank: 1} ]
var elementsBySymbol = findElementInData(quickSearchResults, 'BTC');
console.log(elementsBySymbol); // [{name: "Bitcoin", rank: 1} ]
这将为您提供与给定数据数组传递的名称或符号匹配的所有元素。
更新:您似乎无法访问数据。这是一个完整的例子:
function findElementInData(dataPoints, nameOrSymbol) {
return dataPoints.filter(point => point.name === nameOrSymbol || point.symbol === nameOrSymbol)
.map(point => {
return { name: point.name, rank: point.rank }
});
}
function getData(dataUrl) {
return fetch(dataUrl)
.then(res => res.json())
}
window.addEventListener('load', () => {
getData('https://s2.coinmarketcap.com/generated/search/quick_search.json')
.then(dataPoints => {
console.log(dataPoints);
let myResultsBTC = findElementInData(dataPoints, 'BTC');
let myResultsBitcoin = findElementInData(dataPoints, 'Bitcoin');
let myResultsEtherum = findElementInData(dataPoints, 'Ethereum');
let myResultsETH = findElementInData(dataPoints, 'ETH');
console.log(myResultsBTC); // {name: "Bitcoin", rank: 1}
console.log(myResultsBitcoin); // {name: "Bitcoin", rank: 1}
console.log(myResultsEtherum); // {name: "Ethereum", rank: 2}
console.log(myResultsETH); // {name: "Ethereum", rank: 2}
})
.catch(err => {
console.error(err);
});
});
答案 1 :(得分:0)
是的,如果您使用PHP,我会这样做:
file_get_contents
和json_decode
将JSON文件加载到变量中。foreach
循环迭代变量。strpos
检查其中一个密钥是否包含我正在搜索的值。您可以创建另一个数组或对象,并将成功搜索的项目转储到其中。
这会很快。