bug记录:Json Parsing Error : JSON.parse: bad control character in string literal
来源:互联网 发布:飞升符箓升级数据 编辑:程序博客网 时间:2024/06/06 08:54
背景
其实是传数据到页面上时候要把json传转成js的对象,开发用的是angularJs里面带的angular.fromJson();报了如题目的错。
过程
查了一下,把问题锁定到了传到前台的json串里面有tab键,制表符之类特殊的符号,所以解析成json出错了。
可以去首先可以去http://jsonlint.com/先检验一下json,来排除是否是非法字符的问题,然后如果是存在非法字符的话,就将字符串trim()一下, 不过.trim()好像只能去掉文字开头和结尾的空格或换行吧?
我也没有用过,不知道具体是什么,但是我trim了也没啥用。所以我比较相信trim()是只去掉开头和结尾这种说法的。
后来我有相继尝试了,在后台传给页面之前将字符串里面的“非法字符”去掉,用了java里面的replace()和replaceAll(),知道了replace(str1,str2)是将字符串里面的子串str1替换成str2,replaceAll(regex,str)是把满足regex的正则表达式的字符串换成str。
在这里提下用的正则表达式为:”[\\s\\t\\n\\r]”//我也不是很懂正则表达式的,这个只知道能用,以后有机会可以学学还是有很多地方会用到正则表达式的。(我好醉啊,直接把正则粘到这里看了一眼右边少一个斜杠,只好多添一个才在右边正常显示了,这个编辑器意外的有萌感。。
这么替换过以后还不能用,因为不知道这个字符串为什么最开始得到的时候是有明文的“\n”的,我在替换的时候替换不掉这个明文的”\n”,但是在存库后再取出来的时候,这个明文的“\n”就不见了,变成了转义的换行符【WTF,所以我又把原来字符串里的“\\n”这种东西去掉了,终于好了。。
后来问传过来信息的同事,他说那串字符串直接复制粘贴就会进行一次转义,原因我也没问清楚。。希望有大大知道是怎么回事的能在看到这篇博文的时候告诉我,我也超好奇啊。
总结
大概就是先判断一下json的格式是否有问题,如果有问题,用各种方法去掉json里面的\t,\n,\f,\r之类的字符,连转义之前的也要去掉。然后就能正常转了。如果不是json串的内容有问题的话,在找别的办法吧。。。。
- bug记录:Json Parsing Error : JSON.parse: bad control character in string literal
- Json Parsing Error : JSON.parse: bad control character in string literal错误解决
- JSON.parse: bad control character in string literal
- JSON.parse: unexpected character
- "JSON parse error
- parse json into string from http response in java
- JSON.parse: unexpected character的排查
- js报错:JSON.parse: unexpected character
- Parse string to Json object
- JSON ajax SyntaxError: JSON.parse: unexpected character异常
- JSON解析:JSON.stringify()、JSON.parse()和eval(string)
- JSON.parse()在火狐中的bug
- Parse JSON
- JSON.parse
- JSON.parse()
- JSON.parse()
- JSON.parse()
- How to parse JSON in Java
- 五分钟初识Hadoop
- 1020. Tree Traversals (25)
- java.lang.IllegalArgumentException: Document base D:\apache-tomcat-6.0.20\webapps\XXX错误
- Java动态代理的实现机制
- left join on and 与 left join on where的区别
- bug记录:Json Parsing Error : JSON.parse: bad control character in string literal
- 【java基础】Minor GC、Major GC和Full GC之间的区别
- OracleSQLDeveloper使用教程
- 修改百度地图默认显示厦门
- 得到sd卡图片的方法总结
- 最基本的网页爬虫(数据采集)
- 自定义视图注意点
- poj 1456 supermarket
- springmvc(十)springmvc和struts2的区别