2017-02-03 10 views
0

データを取得する際にキーと値のペアがJSONデータに存在するかどうかを知りたい。 存在しない場合はdiv要素内に「NA」を表示するか、そうでない場合はそのキーの値を表示します。JSONデータにキー値が存在するかどうかをチェック

HTML:

<div id="output"></div> 

のjQuery:

 $.get('http://api.fixer.io/2000-02-03',function(person){ 
     if(person.hasOwnProperty('rates.BGN')) { 
       $('#output').text(person.rates.BGN); 
      } 
     else { 
       $('#output').text('NA'); 
       } 
      }); 
+0

を正確に問題は何ですか? – lonesomeday

+0

javascriptオブジェクトに 'json'をパースし、' hasOwnProperty 'が動作します。 'var res = JSON.parse(person);' – Ashot

+1

[ドット表記のJavaScript文字列をオブジェクト参照に変換する]の可能な複製(http://stackoverflow.com/questions/6393943/convert-javascript-string-in-オブジェクト参照へのドット表記) –

答えて

1

はまず、あなたはJSONに人を解析する必要があります。

第2に、hasOwnPropertyを誤って使用しているため、試行している方法よりも複数のレベルにオブジェクトをドリルダウンすることはできません。

最後にhasOwnPropertyをちょうど不要です - 次のようにだけ存在するかどうかをテスト:

$.get('http://api.fixer.io/2000-02-03',function(person){ 
    person = JSON.parse(person); 
    if(person.rates.BGN !== undefined) { 
      $('#output').text(person.rates.BGN); 
    } 
    //etc. 
+0

dataType引数を使用するか、単に '$ .getJSON'を使用するかどうかを解析する必要はありません – charlietfl

関連する問題