2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JavaScript】オブジェクトが存在しているように見えるのにその中身を参照しようとするとundefinedになる

Last updated at Posted at 2020-10-15
{ apple: 'りんご', lemon: 'レモン' }

testObjectという名前の上記のようなオブジェクトを参照したいとします。

「りんご」という文字を取り出したいので、

console.log(testObject.apple);
console.log(testObject['apple']);

などとしてもコンソールには

undefined

の表示。

オブジェクト自体はあるのになぜ中身は参照できないの!?!?と困惑するかと思います。
それは、実はオブジェクトではなくてjson型のデータではないでしょうか。

試しに、元のデータを見るため

console.log(testObject);

としてみてください。

{ apple: 'りんご', lemon: 'レモン' }

ではなく

{ "apple": "りんご", "lemon": "レモン" }

のように出てくるかと思います。(※キーも値もダブルクォーテション)

こうなった場合、これはオブジェクトではなくjson型のファイルということです。

#結論

testObject = JSON.parse(testObject);

をしましょう。

これをすることでjson型Object型に変換されます。

その後

console.log(testObject.apple);

をすると

りんご

表示できました!

逆に、Object型からjson型に変換したい場合には

testObject = JSON.stringify(testObject);

を使ってくださいね!

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?