我无法绕过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>
任何人都可以解释是什么让这种双重逃避变得必要吗?
答案 0 :(得分:30)
第一个转义符在Javascript字符串文字中转义它 第二个转义符在JSON字符串文字中转义它。
Javascript表达式'{"a":"b:\\c"}'
计算为字符串'{"a":"b:\c"}'
此字符串包含一个未转义的\
,必须为JSON转义。要获取包含\\
的字符串,必须在Javascript表达式中转义每个\
,从而生成"\\\\"
。