javascriptのfetchでjsonのvalueの値が数字に代わる
Q&A
Closed
javascriptのfetchでJSONの形式が変わってしまう
javascriptのfetchを使って、webapiをJSON形式で取得したいのですが、valueの値が数字に置き換わってしまいます
求めているJSONの形式
curlを使って、JSONファイルに出力すると、求めている形式になる
javascriptのfetchを使ったJSONの形式
例)
"nickname": "ao",
curlした時のJSONは、keyとvalueの関係が正常です
0: {playerInfo: 1, avatarInfoList: 34, ttl: 585, uid: 1007, _title: 1008}
1: {nickname: 2, level: 3, signature: 4, worldLevel: 5, nameCardId: 6, …}
2: "ao"
3: 58
4: "刻晴すり抜けてくれ"
5: 8
6: 210020
7: 527
8: 12
9: 3
このように
1:{nickname: 2, …
2: "ao"
となり、"nickname"
のvalueが配列の番号に起き変わってしまっています。
使用しているAPI
enka.networkという原神のデータを取得するAPIを使用しています
ソースコード
async function callApi(){
const uid = document.getElementById("uid").value
const res = await fetch(`https://enka.network/u/${uid}/__data.json`);
console.log(res)
const user = await res.json()
return user
}
async function pushButton(){
try{
const response = await callApi()
await console.log(response)
await console.log(response.nodes[1].data[10])
}catch(e){
console.error("エラー:",e)
}
}
試したこと
Curlするときに、Contentの部分には、javascriptでfetchした時と同じ結果が出力されていました。ですが、jsonファイルで出力すると、求めている形式になります。
投稿者自身APIを使うことに慣れていないので、なるべくかみ砕いて説明していただければありがたいです。