为什么jQuery JSON解析器需要双重转义为反斜杠?
我无法绕过JSON数据格式的特殊function。
情况如下:我有一个包含Windows( 叹气 )目录路径的字符串,反斜杠转义。 出于某种原因,jQuery JSON解析器认为单个转义是不够的。
var success = jQuery.parseJSON('{"a":"b:\\\\c"}'); var failure = jQuery.parseJSON('{"a":"b:\\c"}');
谁能解释是什么让这种双重逃避变得必要?
第一个转义符在Javascript字符串文字中转义它。
第二个转义符在JSON字符串文字中转义它。
Javascript表达式'{"a":"b:\\c"}'
计算为字符串'{"a":"b:\c"}'
。
此字符串包含单个未转义的\
,必须为JSON转义。 为了获得包含\\
的字符串,每个\
必须在Javascript表达式中进行转义,从而产生"\\\\"
。