2011-11-04 35 views
27

Veriler (//") içerir:JSON.parse: beklenen özellik adı veya '}'

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

senaryo: Şu hatayı alıyorum

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

,

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

, belki orada bir tırnaksız kesme işareti var ? Bu, ters eğik çizgi veya Unicode kaçış (\ u0027) – StaxMan

+0

kullanarak bir tür, ben sadece " – realnumber

+4

sahip olduğum kaçan olmalıdır. Lütfen farklı JSON dizesini yansıtacak şekilde düzenleyin. –

cevap

17

Kodlanmış " numaralı JSON'u alıyorsanız, her bir " örneğini gerçek birile değiştirmeniz gerekir. JSON.parse yapmadan önce. Bir şey gibi:

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

+1 benim için iş yaptı.Onların geliyor " nedenini biliyor musunuz? Bu günah koyarak tarayıcı mı mimetype sunucu tarafında javascript veya json değil mi? – Sid

+0

@Sid, JSON'u nereden ve nasıl aldığınıza göre değişir. Birisi sunucudaki programlama kodunu JSON dizesini kodlayan URL ile yanlış kodlanmış olabilir. –

51

bunun kimseye umut olur, bütün dize özellikleri/değerleri için çift tırnak değiştirildi ve şimdi Tamam çalışıyor JSON dosyada tek tırnak kullanılır Had aynı sorun ....

Değişikliği :

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

için: hata mesajı dayanarak

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

Böyle aptal bir şey! Haklısın. Bu seferki işe yaramadı: JSON.parse ("{ 'ple': 2}") Ama bu yaptı: JSON.parse ('{ "ple": 2}') –

+0

Hehe, mutlu yardımcı oldu. – alchemication

+0

Teşekkürler tomurcuğu, echo "{'başarı': yanlış}"; çalışmadı, echo '{"başarı": false}'; yaptı. :) – Andrew

İlgili konular