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

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值