Come controllare se una stringa è una stringa JSON valida in JavaScript senza usare Try/Catch
Qualcosa come:
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
La soluzione non dovrebbe contenere try/catch. Alcuni di noi attivano "break on all errors" e non gli piace che il debugger si interrompa su quelle stringhe JSON non valide.
489
3
Usa un parser JSON come
JSON.parse
:In prototypeJS, abbiamo il metodo isJSON. Puoi provare quello. Anche json potrebbe aiutare.
Puoi usare la funzione javascript eval() per verificare se è valida.
Per esempio
In alternativa, puoi usare la funzione
JSON.parse
di json.org:Spero che questo aiuti.
AVVERTENZA:
eval()
è pericoloso se qualcuno aggiunge codice JS malevolo, poiché lo eseguirà. Assicuratevi che la stringa JSON sia affidabile, cioè l'avete ottenuta da una fonte affidabile.Modifica Per la mia 1a soluzione, si raccomanda di fare questo.
Per garantire la jsonità. Se la
jsonString
non è JSON puro, l'eval lancerà un'eccezione.