2011-11-04 46 views
27

數據包含(/ " /):JSON.parse:預計屬性名稱或 '}'

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

腳本:

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

我收到提示,

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

基於錯誤信息,也許你在那裏有一個不帶引號撇號?這些必須使用反斜線或Unicode轉義(\ u0027) – StaxMan

+0

轉義,對不起,這是一種類型,我只有" – realnumber

+4

您張貼的JSON是乾淨的。如果不同,請修改以反映實際的JSON字符串。 –

回答

17

如果您收到編碼爲"的JSON,則必須將"的每個實例替換爲真實的在做之前做JSON.parse。喜歡的東西:

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

+1爲我做了這項工作。你知道"進來的原因嗎?是瀏覽器把這些罪過ce mimetype不是從服務器端的JavaScript或JSON? – Sid

+0

@Sid,取決於你在哪裏以及如何獲得JSON。有人可能會錯誤地將服務器上的編程編碼爲對JSON字符串進行URL編碼。 –

51

使用時,JSON文件單引號,改爲雙引號的所有字符串屬性/值和它現在的工作好了,希望它可以幫助人有同樣的問題....

變化:

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

要:

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

這樣一個愚蠢的東西!你是對的。這其中沒有工作: JSON.parse( 「{ 'PLE':2}」) 但是這一次做的: JSON.parse( '{ 「PLE」:2}') –

+0

呵呵,高興它有幫助。 – alchemication

+0

感謝bud,echo「{'success':false}」;沒有工作,echo'{「success」:false}';沒有。 :) – Andrew