2015-04-04 145 views
1

我有以下JSON(有效)刺痛。JSON:解析時出錯

[["abc","{\"icon\":\"adjust\",\"prefix\":\"fa\",\"markerColor\":\"red\"}"],["xyz","{\"icon\":\"archive\",\"prefix\":\"fa\",\"markerColor\":\"green\"}"],["azs","{\"icon\":\"asterisk\",\"prefix\":\"fa\",\"markerColor\":\"darkred\"}"]] 

它給了錯誤,當我嘗試使用JSON.parse功能 這裏解析的是,我使用的解析代碼。

JSON.parse('[["abc","{\"icon\":\"adjust\",\"prefix\":\"fa\",\"markerColor\":\"red\"}"],["xyz","{\"icon\":\"archive\",\"prefix\":\"fa\",\"markerColor\":\"green\"}"],["azs","{\"icon\":\"asterisk\",\"prefix\":\"fa\",\"markerColor\":\"darkred\"}"]]'); 

它給控制檯Uncaught SyntaxError: Unexpected token i

這裏的錯誤是使用JSON在線觀看相同的字符串正確的輸出。 Correct Output by same string using online JSON viewer

+1

雙逃脫引號 - '\\ 「'曾經爲JSON字符串的內容,再次爲JavaScript字符串字面它包裹在 – 2015-04-04 05:10:26

+0

減少'\」'來''''不起作用,儘管'\\''爲'\\''起作用 – muaaz 2015-04-04 05:22:51

回答

1

當您使用JSON瀏覽器,它是從當您使用代碼在你的JS代碼不同。就像@Jonathan所說的那樣,你應該加倍逃避你的刺痛。

JSON.parse('[["abc","{\\"icon\\":\\"adjust\\",\\"prefix\\":\\"fa\\",\\"markerColor\\":\\"red\\"}"],["xyz","{\\"icon\\":\\"archive\\",\\"prefix\\":\\"fa\\",\\"markerColor\\":\\"green\\"}"],["azs","{\\"icon\\":\\"asterisk\\",\\"prefix\\":\\"fa\\",\\"markerColor\\":\\"darkred\\"}"]]');

0

您的json結構無效。你應該使用這個(沒有斜槓):

'[["abc",["icon":"adjust","prefix":"fa","markerColor":"red"]],["xyz",["icon":"archive","prefix":"fa","markerColor":"green"]],["azs",["icon":"asterisk","prefix":"fa","markerColor":"darkred"]]' 
+0

在提供的JSON中有一個JSON字符串 例如:'「{\」icon \「:\」adjust \「, 「前綴\」:\「fa \」,\「markerColor \」:\「red \」}「'您可以將上述JSON視爲密鑰對值 '[」abc「,」{\「icon \」 :\「調整\」,\「前綴\」:\「fa \」,\「markerColor \」:\「red \」}「]'這裏'abc'是關鍵字,''\」icon \ \ 「調整\」,\ 「前綴\」:\「發\ 「,\」markerColor \「:\」red \「}」'值爲 – muaaz 2015-04-04 05:16:48

+0

這不一定是無效的,只是不常見。 JSON中的一些字符串值本身就包含更多的JSON:'JSON.stringify(['abc',JSON.stringify({icon:'adjust'})])' – 2015-04-04 05:18:33

+0

'替換'\「'爲'\\」 '爲我工作。順便說一句,上面的字符串正常工作[這裏](https://www.jsoneditoronline.org/) – muaaz 2015-04-04 05:25:55