解决特殊字符引起json解析错误–单引号、双引号转义

这几天在做一个题库管理,遇到了一个问题,将后台的json数据传到前台用parse解析时,出现了一个错误:
Uncaught SyntaxError: Invalid or unexpected token
at HTMLDocument. (batchEdit.action?qids[]=4200021952103424&qids[]=4200021953266688:619)
at j (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at Function.ready (jquery.min.js:2)
at HTMLDocument.I (jquery.min.js:2)

之前遇到这种问题,多是单引号与多引号不匹配或者括号匹配有问题,仔细检查发现这次不存在这种问题,后来查看batchEdit.action发现错误在下面这行

eval()解析json字符串出错,查询之后发现可能json字符串有特殊字符
json字符串为

 var str = '{"chapter":"章节3","subject":"两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是________________ \nmain( ) \n{ int x; \nscanf(\"%d\",&x);\nif(x++>5) \nprintf(\"%d\",x); \nelse \nprintf(\"%d\\n\",x--); } \n","pictureUrl":"","optionC":"7 和4","start":0,"optionD":"6 和4","optionA":"7 和5","optionB":"6 和3","analysis":"","rows":0,"type":"单选题","qid":4200021952103424,"difficulty":"困难","courseName":"C语言","answer":"A","optionG":"","optionE":"","optionF":"","courseId":4,"knowPoint":"知识点3-9"}';

在这篇博客中了解到
不管是单引号还是双引号,里面都可以套相反的引号,但是不可以双引号里面套单引号,这个单引号再套双引号,这是不行的。
如果在引号里面使用相同的引号,需要用 \ 转义。
单引号转义为\’
双引号转义为\"
后来参考博客在json字符串传入前台时进行以下处理:

str = str.replace("\"", "\\\"");
str = str.replace("\'","\\\'");

到了这里,前台接收的字符串为

var str = '{\"chapter\":\"章节3\",\"subject\":\"两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是________________ \nmain( ) \n{ int x; \nscanf(\\"%d\\",&x);\nif(x++>5) \nprintf(\\"%d\\",x); \nelse \nprintf(\\"%d\\n\\",x--); } \n\",\"pictureUrl\":\"\",\"optionC\":\"7 和4\",\"start\":0,\"optionD\":\"6 和4\",\"optionA\":\"7 和5\",\"optionB\":\"6 和3\",\"analysis\":\"\",\"rows\":0,\"type\":\"单选题\",\"qid\":4200021952103424,\"difficulty\":\"困难\",\"courseName\":\"C语言\",\"answer\":\"A\",\"optionG\":\"\",\"optionE\":\"\",\"optionF\":\"\",\"courseId\":4,\"knowPoint\":\"知识点3-9\"}';

到了这里,仍然同刚才相同的错误,是不是字符串还存在非法字符,字符串中的‘和“都被 转义,我有点怀疑是不是"\n"也需要转义,然后我就先把所有的"\n"全部删掉,然后重新测试,果然不出所料,问题就在"\n"这个位置,采用同样的方式在json字符串传到前台前,对字符进行转义。

str = str.replace("\\n", "\\\\n");

花费了一上午,终于把这个问题解决了,在此标记一下。

解决特殊字符引起json解析错误--单引号、双引号转义相关推荐

  1. javascript中字符串的‘单‘与“双“引号

    通常在使用 javascript 进行编码时,您会遇到对字符串使用"单"或"双"引号的情况,并且想知道两者之间是否有任何真正的区别,如果有,使用一个是否有优势其 ...

  2. 小白爬坑记:C语言学习点滴——我对单、双引号的理解

    小白爬坑记:C语言学习点滴--我对单.双引号的理解 一.单引号的作用: 二.双引号的作用: 三.字符或字符串容易犯的错误: 三.做个小题: 一.单引号的作用: 将单引号中间的所有符号直接转换为ASCI ...

  3. 单引号, 双引号,反引号的区别

    单引号, 双引号,反引号的区别 区别: 区别: 单引号: 所见即所得 里面的内容会原封不动显示出来 双引号: 会解析里面的变量和特殊符号 反引号: 反引号里面的内容会被优先执行 [root@alice ...

  4. Shell中 单引号(‘‘) 双引号(““) 反引号(``) $() 的区别

    字符串与引号 Shell 的模型就是标准的字符流过滤器模型,简单来说,就是一条命令把结果送到标准 输出,这个标准输出被连接到下一个命令的标准输入,由此来实现一系列命令之间的联动. 每一个命令的输出都是 ...

  5. LaTeX如何正确输入引号:双引号“”单引号‘’

    最近看一些latex用户的文章,输入的双引号和单引号都是用输入法中的中文模式键入,并不是LaTeX的正确输入方式. 正确的输入方法如下: 使用键盘的 Tab键上侧的LaTeX技巧218:LaTeX如何 ...

  6. php中单引号 双引号的区别,PHP中单引号与双引号的区别

    一.引号定义字符串 在PHP中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...

  7. Linux中单引号双引号的区别与用法

    1.单引号 单引号将其中的内容都作为了字符串来,忽略所有的命令和特殊字符,类似于一个字符串的用法 echo 'This is a string' >>> This is a stri ...

  8. 终于知道 Shell 中单引号双引号的区别了

    在编写 shell 脚本或输入命令时,你可能已经注意到大多数命令都可以使用单引号 或双引号, 这不仅适用于 shell 脚本,而且适用于所有 Bash 命令, 但是两种类型的引号以及 Bash she ...

  9. mysql sql语句 引号_sql语句中单引号,双引号的处理方法

    关于Insert字符串 很多同学都在(单引号,双引号)这个方面发生了问题,其实主要是因为数据类型和变量在作怪. 下面我们就分别讲述,虽然说的是Insert语句, 但是Select.Update.Del ...

最新文章

  1. 统计简单学_常用统计量
  2. Hadoop之父Doug Cutting:Lucene到Hadoop的开源之路
  3. HDU 1712 裸分组dp
  4. char转成string_真没想到,一个小小的String居然还有这么多窍门?
  5. 计算机在课堂中的应用论文,任务教学法在计算机教学中的应用论文
  6. 区别于传统低效标注,两种基于自然语言解释的数据增强方法
  7. Servlet_生命周期方法
  8. 判断对象存活方法及回收方法
  9. python函数-返回菲波那切数列for,range,append
  10. SSR (misa + primer3 ) 设计SSR引物
  11. Java 打印Word文档
  12. css漂亮的侧导航栏,jQuery+css实现非常漂亮的水平导航菜单效果
  13. 免费申请国外免费域名保姆级教程
  14. android 视频转码需要权限,android 使用 ffmpeg 进行视频转码(一)
  15. 中通快递api,中通快递一件代发api,中通快递礼品商城api,中通快递空包api
  16. Windows多用户配置,不同用户不同访问权限
  17. PE工具制作(大白菜+U盘启动模式)+系统重装
  18. 你都有哪些面试时被虐的经历?
  19. EVE-NG环境搭建
  20. OpenX系列标准介绍(2):OpenDRIVE实例分析

热门文章

  1. K-means高维聚类与PCA降维
  2. Unity Networking开发多人联机射击游戏
  3. [问题]服务器的瞬时 Diffie-Hellman 公共密钥过弱
  4. js简单代码分享到QQ空间、新浪微博
  5. 7.Linux文件管理命令---grep:查找字符串
  6. Java 使用Docx4j实现word文档Docx格式转Doc格式
  7. 域名与IP地址的联系与区别
  8. 网络安全学习笔记1.2.1网络系统面临的安全威胁——恶意代码
  9. 深圳云计算培训:云计算这个行业前景如何?
  10. 图片特征提取整理(持续更新....)