有没有办法将传入的JSON数据与本地JSON数据进行比较?

问题描述 投票:0回答:1

有一个网站(Scryfall)的网站,可以搜索所有《魔法:集结》印刷过的卡牌,并返回特定的结果(特定稀有名卡等)。我喜欢这个网站,但我只想在我个人拥有的卡牌中进行搜索,所以Scryfall有一个搜索API,可以返回JSON结果。

所以Scryfall有一个返回JSON结果的搜索API。我把我个人收藏的数据做成了一个本地JSON文件collection.json,所以当我搜索Scryfall的API时,它将返回JSON,与我本地的JSON进行比较,并且只在前端显示两者匹配的东西。

这就是我目前所做的。

async function fetchAsync (url) {
    let response = await fetch(url)
    let data = await response.json()
    return data
}

let collection = fetchAsync('./collection')

let scryfall = fetchAsync('http://api.scryfall.com/cards/search?q=ceratops&unique=cards&as=grid&order=name')

let results = JSON.parse(scryfall).data.filter(card => { return collection.includes(card.id) } )

results.forEach(function (card) {
        document.querySelector('.card').innerHTML += "<li>" + card.name + "</li>"
    })

我希望它只在前端输出匹配的结果 但它没有这样做。

json api search compare
1个回答
0
投票

你可以使用 JSON.stringify 函数将JavaScript对象转换为字符串& 你可以与你的本地json进行比较。

检查JSON.parse & JSON.stringify,你会知道怎么做。

© www.soinside.com 2019 - 2024. All rights reserved.