2017-03-08 5 views
-1

データ値がnullであるかどうかを確認するために次のことを実行してから、別のものに置き換えてください。JSONオブジェクトのアイテムが見つからないことを確認してください

$.ajax({ 
    url: 'php/parsedjson.php', 
    dataType: 'json', 
    success: function(data) { 
     $.each(data, function(index, val) { 
      if (data[index].Manufacturers[0].Name != null){ 
      var manufacturer = data[index].Manufacturers[0].Name;} 
      else{ var manufacturer ="MISSING"} 
     }); 
    } 
}) 

データ値がJSONに供給されていない場合しかし、これはエラーUncaught TypeError: Cannot read property 'Name' of undefinedをスロー。

これを防ぐための値が存在するかどうかを確認するにはどうすればよいですか?

+2

データをチェックする[index] .Manufacturers.length first –

+0

JSONは、データ交換のための*テキスト表記*です。 [(もっと)](http://stackoverflow.com/a/2904181/157247)JavaScriptのソースコードを扱い、*文字列*を扱っていない場合は、JSONを扱っていません。 –

+0

@ T.J.Crowder私のPHPから返されるデータは、間違いなくJSON形式であることを意味しています。 – jonmrich

答えて

1

は簡単であるべき:

$.ajax({ 
    url: 'php/parsedjson.php', 
    dataType: 'json', 
    success: function(data) { 
     $.each(data, function(index, val) { 
      if (data[index].Manufacturers[0] && data[index].Manufacturers[0].Name){ 
      var manufacturer = data[index].Manufacturers[0].Name;} 
      else{ var manufacturer ="MISSING"} 
     }); 
    } 
}); 

あなたは、[インデックス] .Manufacturers [0]名前を取得する前に、ヌルポインタを避けるためにも、データをチェックする必要があります。

+0

パーフェクト!許可されたら答えを受け入れるありがとう! – jonmrich

関連する問題