为什么jQuery JSON解析器需要双重转义为反斜杠?

时间:2010-09-27 20:22:55

标签: javascript jquery json data-structures

我无法绕过JSON数据格式的特殊功能。

情况如下:我有一个包含Windows(叹息)目录路径的字符串,反斜杠转义。出于某种原因,jQuery JSON解析器认为单个转义是不够的。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">

var success = jQuery.parseJSON('{"a":"b:\\\\c"}');
var failure = jQuery.parseJSON('{"a":"b:\\c"}');

</script>

任何人都可以解释是什么让这种双重逃避变得必要吗?

1 个答案:

答案 0 :(得分:30)

第一个转义符在Javascript字符串文字中转义它 第二个转义符在JSON字符串文字中转义它。

Javascript表达式'{"a":"b:\\c"}'计算为字符串'{"a":"b:\c"}' 此字符串包含一个未转义的\,必须为JSON转义。要获取包含\\的字符串,必须在Javascript表达式中转义每个\,从而生成"\\\\"