2016-03-31 19 views
5

Ich bin ein kompletter Anfänger mit JavaScript und jQuery.Wie verarbeitet man JSON Fehlermeldung

Wenn ich meine API abfragen, werde ich normalerweise JSON wie diese:

{ 
    "soc": 9271, 
    "series": [ 
    { 
     "year": 2013, 
     "estpay": 370 
    }, 
    { 
     "year": 2012, 
     "estpay": 430 
    } 
    ] 
} 

jedoch, wenn meine Abfrage ungültig ist, werde ich JSON wie diese:

{ 
    "error": "Some message here . . . .." 
} 

Also meine Frage ist - was ist die Syntax, um die Fehlermeldung zu erkennen und dann eine IF/ELSE-Art der Antwort einzurichten? wenn Fehlermeldung dies tun .. Wenn keine Fehlermeldung etwas anderes tun.

Antwort

1

Sie können versuchen, ein implementiertes JSON-Tool zu verwenden, in dem diese Methoden integriert sind.

zweitens können Sie versuchen, und verwenden Sie diese:

if (response){ 
    try{ 
     a=JSON.parse(response); 
    }catch(e){ 
     alert(e); //error in the above string(in this case,yes)! 
    } 
} 

Viel Glück!

0
var o = JSON.parse(response); 
if('error' in o){ 
// error in response 
} 
1

überprüfen, ob es ein Fehler zuerst

// assume response is received as string 
var data = JSON.parse(response) 
... 

if (data.error) { 
    // handle error 
    console.log(data.error); 
    return; 
} 

// handle code normally 
... 
0

annehmen lassen, dass das JSON-Objekt in den Variablen result gespeichert wird.

Sie können so etwas wie dies versuchen:

var result = JSON.parse(myQuery()); // myQuery() is the function that executes your query 
if (result.error) { 
    alert("Error message here !"); 
} else { 
    alert("Hallelujah !"); 
} 
0

prüfen, ob es ein „Fehler“ Schlüssel in Ihrer Antwortdaten wird die Arbeit jetzt aber aus Gründen der Herstellung Ihres API an die REST-Protokoll tun konform und mehr skalierbar/dynamisch würde ich die Fehlerbehandlung auf HTTP-Statuscode und -nachrichten basieren. Sie können sich diese Liste ansehen, um zu sehen, was eine gültige Antwort ist und was jeder Statuscode bedeutet. https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Hier ist ein kurzes Beispiel, wie man den Statuscode in jQuery zu handhaben:

$.ajax({ 
statusCode: { 
    500: function(xhr) { 
    if(window.console) console.log(xhr.responseText); 
    } 
} 
}); 

Darüber hinaus sollten Sie auch die JSON analysieren, um zu sehen, ob es gültig ist, wie Ido Michael

vorgeschlagen
0

Diese könnte eine gute Struktur sein

try { 
    data = JSON.parse(response); 
} catch(e) { 
    data = false; 
} 

if(!data || data.error) { 
    // handel error 
} else { 
    // data is good 
} 
-1

Danke für die sehr schnelle Antworten. Ich habe versucht, Ihre Vorschläge zu implementieren, aber ich bin nicht erfolgreich wegen Anfänger Ignoranz. Ich habe ein Beispiel für den Code angegeben, mit dem ich unten arbeite.

Ich brauche nur die JSON von $ .get auf das Wort "Fehler" überprüft werden.

Wenn "Fehler" angezeigt wird, dann muss var nipay etwas wie "Nicht verfügbar" enthalten.

Ansonsten var nipay = maxBy ("year", data.series) .estpay

$.get("http://my_api_url", 
function(data) { 

var nipay = maxBy("year", data.series).estpay ; 

$("#box1").html("<p><b>NI:</b> " + nipay + " GBP/week </p>") 
}); 
Verwandte Themen