[object Object]が表示される
配列へアクセスすると
[object Object]が表示されてしまいました。
正確にはUrlFetchAppでfetchを行ったデータをparseした後に
console.logで表示すると[object Object]
が表示される状態です。
1 2 3 4 |
let getdata = UrlFetchApp.fetch(URL).getContentText(); let json_getdata = JSON.parse(getdata); console.log("json_getdata = " + json_getdata) // ここで[object Object]が表示される |
表示される原因
一旦デバッグしてみることにします。
[object Object]となっていた「json_getdata 」は
↓のように表示されます。
配列指定されている「json_getdata 」を
そのまま表示しようとしたので
[object Object]となっていることが分かりました。
表示された場合の対応方法
「json_getdata」が駄目だったので
「json_getdata[x]」または
「json_getdata[x][x]」などと指定しなければいけないようです。
そのため何のデータが欲しいか配列の中身をデバッグしたいと思います。
「json_getdata」へ「>」が表示されているので
デバッガ上でクリックします。
クリックして展開するとこのようになります。
今回天気予報のデータから
気温の部分を取得したいので、下記まで階層をクリックします。
tempに気温が入っていることが分かりました!
あとは配列を正しく指定するだけですね。
少し階層が深いですが、
json_getdata > list > 0 > main > temp
→ json_getdata[‘list’][0][‘main’][‘temp’]
で気温が表示されます。
コードにすると以下になります。
1 2 |
console.log("json_getdata = " + json_getdata) // x:[object Object]が表示される console.log("気温 ['list'][0]['main'][temp] = " + json_getdata['list'][0]['main']['temp']) // 〇:気温が表示される |
今回のまとめ
・[object Object]となる場合は配列をそのまま指定している可能性がある
・配列から何のデータが欲しいかをデバッグして確認してみる
・変数[x][x]として指定すると正しく表示される
以上です
最後までお読みいただきありがとうございました!