一、因为后端传过来的数据的字符串是单引号,所以我这边不能直接直接进行json转义
所以我就把单引号替换成",这样就可以直接把字符串转换成对象的格式,然后来取里面的数据
二、字符串中多个反斜杠,直接转义取数据时报错问题
所以我直接把反斜杠去掉
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠例如 str1="aa\bbb"str2="aa'bbb"
要想替换成 str1="aa\\bbb"str2="aa\'bbb"
必须这样替换:
str1 = str1.replaceAll("\\\\", "\\\\\\\\")
str2 = str2.replaceAll("'", "\\\\'")
原因如下:
String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的,
\\\\ ,java解析为\\交给正则表达式, 正则表达式再经过一次转换,把\\转换成为\
也就是java里面要用正则来表示一个\. 必须写成4个\
如果要表示\\,那就要写8个\
所以如果写成: str1 = str1.replaceAll("\\", "\\\\")
就会报正则表达式的错误。