我正在嘗試使用useFetch獲取 API 資料和索引來獲取特定值。
這是當前的代碼:
const { isLoading, error, data } = useFetch("https://public-api.solscan.io/account/tokens?account=C9XzDbZrZkJ75EvEeb641PQ5Q9kDiN2nFugdyAXqGip1");
const dataStarsStaked = JSON.stringify(data, ["0", "tokenAddress", "tokenAmount", "uiAmount"], 0);
回傳data:
[{"tokenAddress":"4q5UBXJxE91BZKX548qhU8i5QBWvZdXzS3RZwfTgLQda","tokenAmount":{"uiAmount":253847.899902}},{"tokenAddress":"HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW","tokenAmount":{"uiAmount":6864373.022357}},{"tokenAddress":"HkNK7BL5pSUUzc6ns1mHW5JnzbSG4S9u2QdR3cUuyzSa","tokenAmount":{"uiAmount":678}}]
我正在嘗試獲取 uiAmount 的值tokenAddress: HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW。我該怎么做呢?我不知道如何索引它。謝謝!
uj5u.com熱心網友回復:
您可以搜索資料陣列:
data.find(x => x.tokenAddress === "HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW");
要擺脫打字稿錯誤,您需要定義型別(使用類似于此的內容,但更改any[]為 api 回傳的物件型別陣列):
interface YourFetchResult {
data: any[];
isLoading: boolean;
error?: string;
}
const { isLoading, error, data }: FetchResult = useFetch(...)
uj5u.com熱心網友回復:
您需要應用 for 回圈并具有檢測字串的條件,請參見下文
let x = [{"tokenAddress":"4q5UBXJxE91BZKX548qhU8i5QBWvZdXzS3RZwfTgLQda","tokenAmount":{"uiAmount":253847.899902}},{"tokenAddress":"HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW","tokenAmount":{"uiAmount":6864373.022357}},{"tokenAddress":"HkNK7BL5pSUUzc6ns1mHW5JnzbSG4S9u2QdR3cUuyzSa","tokenAmount":{"uiAmount":678}}]
for (let i = 0; i < x.length; i ) {
if(x[i].tokenAddress==="HCgybxq5Upy8Mccihrp7EsmwwFqYZtrHrsmsKwtGXLgW") {
console.log(x[i].tokenAmount)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396299.html
標籤:javascript 反应 json
