【问题标题】:Why does the jQuery JSON parser need double escaping for backslashes?为什么 jQuery JSON 解析器需要对反斜杠进行双重转义?
【发布时间】:2011-04-17 23:27:27
【问题描述】:

我很难理解 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 jquery json data-structures


    【解决方案1】:

    第一个转义符在 Javascript 字符串文字中对其进行转义。
    第二个转义在 JSON 字符串文字中对其进行转义。

    Javascript 表达式 '{"a":"b:\\c"}' 计算结果为字符串 '{"a":"b:\c"}'
    此字符串包含一个未转义的 \,必须为 JSON 进行转义。为了得到一个包含\\的字符串,每个\必须在Javascript表达式中进行转义,结果是"\\\\"

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2011-01-23
      • 2010-12-07
      相关资源
      最近更新 更多