エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

"Cannot use 'in' operator to search for " が出て迷った

事象

jsonをparseして、プロパティの存在チェックにinを利用したときに、表題のCannot use 'in' operator to search for ...というエラー文言が出てきた。

エラーの内容

参考サイトからの引用

JavaScript の例外 "right-hand side of 'in' should be an object" は、 in 演算子が文字列、数値、その他のプリミティブ型の中を検索するために使用された場合に発生します。

つまり、inを利用しようとしたクラスがオブジェクトではなく文字列とか数値になっているらしい。

原因

jsonをparseしたと思っていたが、どうやらただの文字列になっていたらしく、変換に失敗した。
その場合は、parse時に SyntaxError が出て欲しかったのだが、出ないパターンがあるらしい。。。

インプットのデータを直して試したら、問題なく動作した。。。。

参考サイト

TypeError: cannot use 'in' operator to search for 'x' in 'y' - JavaScript | MDN