在chrome的控制台console中, 输入 JSON.parse("[{"name":"1"},1102]") 会报错
因为parse把 “[{” 看成了一对双引号,然后就报错了
但是在代码中写,却能正常转化,原因是在console中需要在“”双引号前面加\ 转义反斜杠
但是浏览器中直接帮我们做了,所以不会报错
加上反斜杠转义后,如 JSON.parse("[{\"name\":\"1\"},1102]\") 就不会报错了
如果不加反斜杠转义,那么只需将最外面的双引号改成单引号即可,比较建议这么做
如:JSON.parse('[{"name":"1"},1102]')
JSON.parse, 若碰到 \t 这种特殊符号报错
作为数据方,传给前端的string 中带了一个 \t,导致前端报错,如:
["{"\n\t xd_locked" : "必\t中"}",8957]
解决方案(c#):
string reply ="["{"\n\t locked" : "必\t中"}",8957]";
reply = System.Text.RegularExpressions.Regex.Replace(reply, @"\n", ""); //去掉\n
reply = System.Text.RegularExpressions.Regex.Replace(reply, @"\t", ""); //去掉\t,确实去掉了几乎所有的\t,但是还存在一个
reply = reply.Replace("\\t", ""); //使用这个能去掉那个剩下的\t