在对json字符的备份还原中,json中如果存在特殊字符串,如单个双引号‘’或者冒号:,则会引发json还原异常,导致还原不成功。
处理策略一:
1.
System.out.println((int)'"');//获取双引号的ASCII码值,读取双引号值为34(冒号为58,以及左右中括号,大括号,逗号)
2.
将此ASCII值转换为16进制的Unicode编码值
34即为16*2+2,等于0022
58即为16*3+10,等于003A
3.校验
char s = '\u0022';
char m = '\u003A';
System.out.println(s);
System.out.println(m);
处理策略二:
1.将英文的逗号转换为中文的逗号
2.将英文的冒号转换为中文的冒号
public static String changeStr(String str){
json = json.replaceAll("," , ",");
json = json.replaceAll(":" , ":");
json = json.replaceAll("\\[" , "【");//java正则表达式符号,需要转义
json = json.replaceAll("\\]" , "】");
json = json.replaceAll("\\{" , "<");
json = json.replaceAll("\\}" , ">");
json = json.replaceAll("/"" , " “ ");
return json.toString();
}