当前位置: 首页 > 面试题库 >

为什么jQuery JSON解析器需要对反斜杠进行两次转义?

宫修贤
2023-03-14
问题内容

我很难绕过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"}'
此字符串包含单个unscaped
\,对于JSON必须对其进行转义。为了获得包含的字符串\\,每个字符串都\必须在Javascript表达式中转义,结果为"\\\\"



 类似资料:
  • 问题内容: 当我创建一个包含反斜杠的字符串时,它们会重复: 为什么? 问题答案: 你们看到的是代表的由它的创建方法。如果您进行打印,则可以看到实际上有一个反斜杠,如您所愿: 下面的字符串中包含三个字符,而不是四个: Python在字符串中表示反斜杠,因为反斜杠是转义字符-例如,表示换行符和表示制表符。 有时这会给您带来麻烦: 当Python返回字符串的表示形式时,它将起到安全的作用,转义所有反斜杠

  • 问题内容: 这是一个“到底发生了什么”的问题。我实际上不需要解决方案。 我必须用双反斜杠替换字符串中的所有单反斜杠。这就是我最终要做的… …其中strRootDirectory是上面的java.lang.String。 现在,我了解了第一个参数的四个反斜杠:regex期望两个反斜杠以表示单个文字反斜杠,而Java希望它们加倍。没关系。 但是,第二个参数的八个反斜杠到底是怎么回事?替换字符串不是应该

  • 本文向大家介绍为什么在Python中打印时反斜杠出现两次?,包括了为什么在Python中打印时反斜杠出现两次?的使用技巧和注意事项,需要的朋友参考一下 反斜杠是转义字符。它用于转义引号,双引号,换行符等字符。当我们打印包含反斜杠的字符串时,我们会看到两次,因为还需要反斜杠来自身转义。这意味着我们正在告诉解释器此反斜杠仅用作反斜杠,而不用作转义符。例如, 输出值

  • 问题内容: 我已经使用了很长时间了,到目前为止我还没有遇到任何问题。现在,我正在使用上传脚本,并且尝试在文件上传后返回一些JSON数据。 我有以下代码: 这给了我以下结果: 谁能告诉我为什么加斜杠? 更新 @Quentin说,事情是发生之间和与他的权利。 做一个给我以下结果: 这不是有效的JSON。它还添加,我不知道它来自哪里。 可能对我返回的数据有影响吗? 这是我的js脚本: 问题答案: 谁能告

  • 问题内容: 这样做的原因是“逃脱了”我。 JSON转义为正斜杠,因此哈希序列化为而不是。 为什么? 问题答案: JSON不需要您执行此操作,而是允许您执行此操作。它还允许您将“ \ u0061”用于“ A”,但这不是必需的。在将JSON嵌入标记中时允许帮助,该标记不允许内部字符串出现,如Seb指出的那样。 Microsoft的一些ASP.NET Ajax / JSON API使用此漏洞来添加额外的

  • 为什么命令以开头?这是我看到它的网站。