Ho un pezzo di JS in esecuzione in IE con la seguente riga:Perché JSON.Parse dice "carattere non valido"?
var data = JSON.parse("{ skill: 'SK_AUTO_DEV_TEST', kind: 'IS_REQUIRED' }");
Qualcuno mi può dire cosa c'è di sbagliato in questo?
Ho un pezzo di JS in esecuzione in IE con la seguente riga:Perché JSON.Parse dice "carattere non valido"?
var data = JSON.parse("{ skill: 'SK_AUTO_DEV_TEST', kind: 'IS_REQUIRED' }");
Qualcuno mi può dire cosa c'è di sbagliato in questo?
perché non è JSON valido
JSON.parse('{ "skill": "SK_AUTO_DEV_TEST", "kind": "IS_REQUIRED" }');
Grazie. Perché le virgolette sono richieste intorno ai nomi delle proprietà? Ho visto che non è sempre il caso w/parser JSON. – skb
Lo standard richiede le virgolette. 'JSON.parse()' lo segue e forse l'altro parser che hai usato era rilassato su quella regola. Il motivo è di aggirare il problema della parola riservata. Crea un oggetto semplice in un file JavaScript e prova "{if: 0}" e "{" if ": 0}". Indovina quale è un errore? – epascarello
Ciao @epascarello, qualsiasi idea su come gestire il codice sottostante 'var text = '{" skill ":" SK_AUTO_DEV_TEST "," kind ":" IS_REQUIRED "}'; JSON.parse (testo); 'Per me sta dicendo Char non valido nella riga di analisi. Mi sono stancato in w3school con virgolette singole, ma è funzionante, ma nella mia javascript l'aggiunta di virgolette all'inizio e alla fine rende la mia analisi come 'JSON.parse (" {"skill": "SK_AUTO_DEV_TEST", "kind": " IS_REQUIRED "}"); ' – Jaikrat
Per approfondire la risposta di epascarello, si rimanda al json.org. Nota nel primo diagramma che il nome nella coppia nome/valore è definito come "stringa". Quindi notare nel diagramma che definisce "stringa" che deve iniziare e terminare con virgolette. Si noti inoltre che questo si applica sia al nome che al valore.
Si prega di dare un'occhiata a [JSONLint] (http://jsonlint.com/). È un validatore online che fornisce buoni messaggi di errore. –