2013-12-10 15 views
5

Ben şu satırla IE JS çalışan bir parça var? O epascarello cevabı ayrıntılı için geçerlidir JSONJSON.Parse neden "geçersiz karakter" diyor?</p> <p><code>var data = JSON.parse("{ skill: 'SK_AUTO_DEV_TEST', kind: 'IS_REQUIRED' }");</code></p> <p>herkes bu sorununun ne söyleyebilir:

JSON.parse('{ "skill": "SK_AUTO_DEV_TEST", "kind": "IS_REQUIRED" }'); 
+6

Lütfen [JSONLint] 'a bakın (http://jsonlint.com/). Oldukça iyi hata mesajları veren bir çevrimiçi doğrulayıcıdır. –

cevap

13

, json.org bakınız. İlk diyagramda, isim/değer çiftindeki ismin "string" olarak tanımlandığını not edin. Ardından, "dize" yi tanımlayan ve çift tırnak ile başlaması ve bitmesi gereken diyagramı not edin. Ayrıca bunun hem isim hem de değer için geçerli olduğunu unutmayın.

+1

Teşekkürler. Mülkler mülkiyet isimleri niçin gereklidir? Ben her zaman her durumda JSON ayrıştırıcıları olduğunu görmedim. – skb

+2

Standart çift tırnak gerektirir. JSON.parse() 'bunu izler ve belki de kullandığınız diğer ayrıştırıcı bu kuralda rahatlamıştı. Nedeni saklıdır kelime sorunu etrafında almaktır. JavaScript dosyasında basit bir nesne yapın ve '{if: 0}' ve '{" if ": 0}}" ı deneyin. Tahmin et hangisi bir hata? – epascarello

+0

Hello @epascarello, aşağıdaki kod parçasının nasıl işleneceği hakkında bir fikir 'var text = '{" skill ":" SK_AUTO_DEV_TEST "," kind ":" IS_REQUIRED "}'; JSON.parse (text); 'Benim için parse satırında geçersiz Char deyiyor. W3school'da tek bir alıntıyla yoruldum, onun çalışması var ama javascriptimde onun başlangıç ​​ve bitiş noktalarına çift tırnak işareti ekliyorum “JSON.parse (" {"skill": "SK_AUTO_DEV_TEST", "kind": " IS_REQUIRED "}"); ' – Jaikrat

2

olmadığından

İlgili konular