Un guillemet double, même s'il est échappé, provoque une erreur d'analyse.
regardez le code ci-dessous
//parse the json in javascript
var testJson = '{"result": ["lunch", "\"Show\""] }';
var tags = JSON.parse(testJson);
alert (tags.result[1]);
Il y a une erreur d'analyse à cause des guillemets doubles (qui sont déjà échappés).
Même eval()
ne fonctionnera pas ici.
Mais si je l'échappe avec des doubles barres obliques comme ceci :
var result = '{"result": ["lunch", "\\"Show\\""] }';
var tags = JSON.parse(result);
alert (tags.result[1]);
alors cela fonctionne bien.
Pourquoi devons-nous utiliser le double slash ici en javascript ? Le problème est que PHP json_encode()
permet d'échapper à un guillemet double par une simple barre oblique (comme ceci : \"show\"
) qui JSON.parse
ne sera pas en mesure de l'analyser. Comment puis-je gérer cette situation ?