2010-01-08 4 views
1

J'essaye de convertir une chaîne JSON assez compliquée avec json2.js de json.org et je continue à recevoir une erreur d'analyse. Malheureusement, je n'arrive pas à comprendre de quel personnage il se plaint ou si j'ai raté une fuite quelque part. À ce stade, ce serait génial si je pouvais avoir une deuxième paire d'yeux dessus. Merci à tous ceux qui aident!Quelqu'un pourrait-il me dire pourquoi json2.js ne peut pas analyser cette chaîne?

var jsonOriginal = "{\"type\":\"ExecuteScript\",\"id\":\"\",\"markup\":\"var scranvas = null;scranvas = lifeware.getControl('c-4246999b-11c6-44ee-8672-9654de2eb52d');scranvas.addItem('6402c984-de0d-46b3-9b0b-88cae64d21ca','<div id=\"c-6402c984-de0d-46b3-9b0b-88cae64d21ca\" class=\"container-item\" onmouseover=\"lifeware.fireEvent('6402c984-de0d-46b3-9b0b-88cae64d21ca', 'GotFocus', null);\" onmouseout=\"lifeware.fireEvent('6402c984-de0d-46b3-9b0b-88cae64d21ca', 'LostFocus', null);\" onfocus=\"lifeware.fireEvent('6402c984-de0d-46b3-9b0b-88cae64d21ca', 'GotFocus', null);\"><label style=\"position:absolute;white-space:nowrap;overflow:hidden;height:50px;width:147px;color:#FFFFFF;text-align:left;font-weight:normal;text-decoration:normal;font-style:normal;font-size:18px;font-family:Segoe UI;left:0px;display:block;filter:alpha(opacity=100);opacity:1;\" id=\"c-101a5ec4-ce1b-4ca1-bd50-c289e4d27d45\">Item 0</label></div>');\"}"; 
var operation = JSON.parse(jsonOriginal); 

Répondre

5

la valeur de 'balisage' clé se termine par la citation à ... < div id = \ »

habituellement l'encodeur JSON va gérer des échappements pour vous, par exemple:

var data = {type: 'ExecuteScript', id: '', markup: '"var... <div id="'} 
var js = JSON.stringify(data) 

dans votre exemple, vous voulez échapper à la fuite char de sorte qu'il sera préservé et transmis pour analyser()

<div id=\\\" 
+0

Merci, Je n'avais pas réalisé que j'avais besoin d'échapper à l'évasion. –

Questions connexes