2016-04-26 7 views
0

Ich fand paar ähnliche Antworten auf SO, aber keiner von ihnen ist genug. Ich rufe Ajax mit $.post() und jsonstring string zurückgegeben.Überprüfen Sie, ob Ajax gültige JSON-String zurückgegeben

Viele Dinge können auftreten (falsches JSON-Format, Serverfehler, Verbindung verloren usw.) und ich versuche zu testen, ob die zurückgegebene Zeichenfolge json gültig ist.

Ich überprüft diese answer, aber es ist eval, die nicht sicher ist.

Hier ist mein Code, den ich jetzt geschrieben:

$.post(
    'some_url.php', 
    some_params, 
    function(data) { 
     var is_JSON = true; 

     try { 
      data = $.parseJSON(data); 
     } 
     catch(err) { 
      is_JSON = false; 
     } 

     if (is_JSON && (data !== null)) { 
      console.log('correct json format'); 

      if (data.result === 'OK') { 
       console.log('result: OK'); 
      } 
      else if (data.result === 'ERR') { 
       console.log('result: ERR'); 
      } 
     } 
     else { 
      try { 
       console.log('incorrect json format'); 
      } 
      catch(err) { 
       console.log('error occured'); 
      } 
     } 
    } 
); 

Wie kann ich einfach (und gerade genug) überprüfen, wenn zurückgegebene Zeichenfolge in der richtigen json-Format ist? Vielen Dank.

+3

Ich denke, dass Sie es richtig machen. Überprüfen Sie diese Antwort http://stackoverflow.com/questions/3710204/how-to-check-if-a-string-is-a-valid-json-string-in-javascript-without-ustry-try –

+2

Die akzeptierte Antwort Es ist falsch, aber diese Antwort (mit den meisten Stimmen) sollte stimmen, ja? http://StackOverflow.com/a/3710226/1631551 – Legionar

+0

Das ist, was ich tun würde. Hier ist eine andere ähnliche - http://StackOverflow.com/a/8431765/1161948 – ThisClark

Antwort

0

Wie wäre es mit JSON.parse()?

$.post(
    'some_url.php', 
    some_params, 
    function(data) { 
      try { 
       console.log(JSON.parse(data)); 
      } 
      catch(err) { 
       console.log('error occured'); 
      } 
    } 
); 
Verwandte Themen