2011-11-04 16 views
27

dati contiene (/ " /):JSON.parse: atteso nome della proprietà o '}'

{"test":"101","mr":"103","bishop":"102"} 

script:

console.log($.parseJSON(result)); 

sto errore ottenendo,

JSON.parse: expected property name or '}'. 
+0

sulla base di messaggio di errore, forse hai un apostrofo non quotati in là ? Quelle devono essere sottoposte a escape utilizzando la barra rovesciata o la fuga Unicode (\ u0027) – StaxMan

+0

scusa questo è un tipo, lì ho solo " – realnumber

+4

Il tuo JSON come pubblicato è pulito. Si prega di modificare per riflettere la stringa JSON effettiva se è diversa. –

risposta

17

Se stai ricevendo il JSON con codificato ", dovrai sostituire ogni istanza di " con un vero " prima di fare JSON.parse. Qualcosa di simile:

myJSONstring.replace(/"/ig,'"'); 
+1

+1 ha fatto il lavoro per me, conosci il motivo per cui lo " entra in azione? ce il mimetype non è javascript o json dal lato server? – Sid

+0

@Sid, dipende da dove e come si ottiene il JSON. È possibile che qualcuno abbia codificato in modo errato la programmazione sul server per codificare l'URL della stringa JSON. –

51

Ha avuto lo stesso problema quando usato apici nel file JSON, cambiato in virgolette doppie per tutte le stringhe proprietà/valori e sta funzionando bene adesso, spero che aiuta chiunque ....

Change :

JSON.parse("{'wrongQuotes': 5}") 

a:

JSON.parse('{"rightQuotes": 5}') 
+4

Una cosa così stupida! Hai ragione. Questo non ha funzionato: JSON.parse ("{ 'pio': 2}") ma questo fatto: JSON.parse ('{ "pio": 2}') –

+0

Hehe, felice ha aiutato. – alchemication

+0

Grazie bud, echo "{'success': false}"; non ha funzionato, echo '{"success": false}'; fatto. :) – Andrew

Problemi correlati