json特殊字符串的处理

在对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();

}

你可能感兴趣的:(技术细节)