I have a problem wrapping my head around a specific feature of the JSON data format.
The situation is as follows: I have a string in which Windows ( sigh ) is the directory path, backslashes are escaped. For some reason, jQuery's JSON Parser thinks that a single escape is not enough.
& lt; Script type = "text / javascript" src = "http://ajax.googleapis.com/ ajax / libs / jQuery / 1.4.2 / jquery.min.js" & gt; & Lt; / Script & gt; & Lt; Script type = "text / javascript" & gt; Var success = jQuery.parseJSON ('{"a": "b: \\\\ c"}'); Var failure = jQuery.parseJSON ('{"a": "b: \\ c"}'); & Lt; / Script & gt; Can someone explain what is the need to avoid such a double?
The first escape saves it in the javascript string.
In the JSON string it survives from the other escape.
Evaluates the JavaScript expression '{"a": "b: \\ c"}' string '{"a": "b: \ c "} '' .
This string has a single unchanged \ , which must be saved for JSON. To get the string containing \\ , you must save each \ in JavaScript expression, which will result in "\\\\" .
Comments
Post a Comment