2017-02-03 3 views
0

Ich möchte wissen, ob das Schlüssel/Wert-Paar in JSON-Daten vorhanden ist, während Daten abgerufen werden. Zeigen Sie "NA" innerhalb des div-Elements an, wenn es nicht vorhanden ist, oder zeigen Sie den Wert dieses Schlüssels an.Überprüfen, ob Schlüsselwert in JSON-Daten vorhanden ist

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

Was genau ist das Problem? – lonesomeday

+0

Parse 'json' zu JavaScript-Objekt dann' hasOwnProperty 'wird funktionieren. 'var res = JSON.parse (Person);' – Ashot

+1

Mögliches Duplikat von [Konvertiere JavaScript-Zeichenfolge in Punktnotation in eine Objektreferenz] (http://stackoverflow.com/questions/6393943/convert-javascript-string-in- dot-notation-in-a-object-reference) –

Antwort

1

Zuerst müssen Sie Person in JSON analysieren.

Zweitens missbrauchen Sie hasOwnProperty, es kann nicht verwendet werden, um ein Objekt in mehr als einer Ebene auf die Art und Weise zu untersuchen, wie Sie es versuchen.

Schließlich hasOwnProperty ist nur überflüssig - nur für Existenz wie folgt testen:

$.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

kein Parsen notwendig, wenn Sie das Argument dataType verwenden oder einfach '$ .getJSON' verwenden – charlietfl

Verwandte Themen