我无法理解 JSON 数据格式的一个特殊特性。
情况如下:我有一个包含 Windows (sigh) 目录路径的字符串,反斜杠被转义了。出于某种原因,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>
任何人都可以解释为什么需要进行这种双重转义吗?
最佳答案
第一个转义符在 Javascript 字符串字面量中将其转义。
第二次转义在 JSON 字符串文字中将其转义。
Javascript 表达式 '{"a":"b:\\c"}'
的计算结果为字符串 '{"a":"b:\c"}'
.
此字符串包含单个未转义的 \
,必须对 JSON 进行转义。为了得到一个包含\\
的字符串,每个\
都必须在Javascript表达式中进行转义,从而得到"\\\\"
。
关于javascript - 为什么 jQuery JSON 解析器需要对反斜杠进行双重转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807537/