1

jsonオブジェクトの子属性がnullかどうかを確認するにはどうすればよいですか?Firefoxはそれを認識しますが、ChromeとIE8は認識しません。

私はこのようなjsonオブジェクトを持っています:

centralData.phone.id;
centralData.address.id;
centralData.product.id;
//and many others

そして、その属性のいくつかがnullである可能性があるかどうかを確認したいと思います。私はこれをやっていて、それはうまくいきます:

if(centralData.phone != null){
   //Do things
}

しかし、これはそうではありません。常に私がStockGroupを持っているとは限らないからです。

if(centralData.product.StockGroup != null){
 //Error
}

centralData.product.StockGroup では、 nullかどうかを確認するにはどうすればよいですか?

4

4 に答える 4

4

プロパティがundefined代わりにあるかどうかを確認すると思います

if(typeof (centralData.product || {}).StockGroup) !== "undefined") {
   /* do something */
}

この種のチェックはajaxianサイトで説明されており、全体的なコードははるかに短いです

于 2012-04-18T15:20:18.243 に答える
1

存在するかどうnullかを確認するのではなく、プロパティが存在するかどうかを確認する必要があります(undefinedこの場合は存在します)。タイプ間で変換する==の代わりにを使用しているため、チェックは機能します( 、しかし)。===undefined == nullundefined !== null

ネストされたプロパティを確認する場合は、すべてのレベルを確認する必要があります。inプロパティが存在するかどうかをチェックし、その値を無視するため、演算子を使用することをお勧めします。

これはあなたがやりたいことをします:

if("product" in centralData && "StockGroup" in centralData.product){
    …
}
于 2012-04-18T15:20:54.100 に答える
0

nullを使用する代わりに、オブジェクトをundefinedと比較してみてください。

于 2012-04-18T15:16:17.060 に答える
0

JavaScriptは遅延評価を採用しているため、パフォーマンスを損なうことなく、次のようなチェックを実行できます。

if(centralData.product != null && centralData.product.StockGroup != null){

}
于 2012-04-18T15:18:24.950 に答える