最近遇到json串里的内容包含单引号导致不能正常解析。
使用html转义字符代替单引号、双引号等,即可解决:str = str.replaceAll("'", "'");
//IE暂不支持单引号的实体名称,而支持单引号的实体编号,故单引号转义成实体编号,其它字符转义成实体名称str = str.replaceAll("\"", """);
//双引号也需要转义,所以加一个斜线对其进行转义str = str.replaceAll("\n", "<br/>");
//不能把\n的过滤放在前面,因为还要对<和>过滤,这样就会导致
失效了
附:常用html转义字符
自己的问题记录:使用logstash采集mysql的数据时,由于elasticSearch的字段设置的为text类型,导致无法传json类型的数据,而且text类型数据最外面有一层""
,导致内层的json的双引号都只能变为单引号。
在前端获取数据时,需要将字符串类型转为json格式,单引号无法被识别解析。
最终通过这一句解决:
let teachplanString2 = teachplanString.replaceAll("'", "\"");