用JSON备份还原短信时特殊字符的处理
2016-06-10 22:46
260 查看
今天捣鼓一个短信备份还原的功能,用json格式来做。但是由于短信都是各式各样的字符组成。所以要是里面有和json一样的格式特殊字符的时候,就会出错导致恢复不了。
就想下面那样:
要是body那一部分,也就是我们短信的内容里面包含着json的特殊字符即(" , [ ] { }),的时候就会导致短信恢复的时候解析出错。
虽然其实发生这种事情的概率挺低的,但是只要存在着一个符号就会导致这个功能的崩溃,所以要针对这种情况处理一下。
其中有一个挺讨巧的办法就是,利用英文标点符号与中文标点符号的相似但是ascii值不同来处理这个问题。
譬如说,英文字符 ( ,) 与中文字符 (,)
具体实现主要代码如下:
public class JsonStrTools {
/**
* @param json
* json的字符串
* @return
* 把json特殊字符做了转换处理
*/
public static String changeStr(String json){
json = json.replaceAll(",", ",");
json = json.replaceAll(":", ":");
json = json.replaceAll("\\[", "【");
json = json.replaceAll("\\]", "】");
json = json.replaceAll("\\{", "<");
json = json.replaceAll("\\}", ">");
json = json.replaceAll("\"", "”");
return json.toString();
}
}
毕竟这个功能挺常用,所以我们最好把它封装成一个工具类。
就想下面那样:
要是body那一部分,也就是我们短信的内容里面包含着json的特殊字符即(" , [ ] { }),的时候就会导致短信恢复的时候解析出错。
虽然其实发生这种事情的概率挺低的,但是只要存在着一个符号就会导致这个功能的崩溃,所以要针对这种情况处理一下。
其中有一个挺讨巧的办法就是,利用英文标点符号与中文标点符号的相似但是ascii值不同来处理这个问题。
譬如说,英文字符 ( ,) 与中文字符 (,)
具体实现主要代码如下:
public class JsonStrTools {
/**
* @param json
* json的字符串
* @return
* 把json特殊字符做了转换处理
*/
public static String changeStr(String json){
json = json.replaceAll(",", ",");
json = json.replaceAll(":", ":");
json = json.replaceAll("\\[", "【");
json = json.replaceAll("\\]", "】");
json = json.replaceAll("\\{", "<");
json = json.replaceAll("\\}", ">");
json = json.replaceAll("\"", "”");
return json.toString();
}
}
毕竟这个功能挺常用,所以我们最好把它封装成一个工具类。
相关文章推荐
- 用JavaScript实现贪吃蛇游戏
- JavaScript中的document.cookie的使用
- 一个 JavaScript 小时钟
- JavaScript实现页面的后退前进按钮
- JS实现"分享到"侧边栏
- js弹出框、对话框、提示框、弹窗总结
- Ajax+Servlet
- JSP和Servlet的中文乱码处理
- JavaScript如何处理错误
- (九)JavaScript Math对象及方法
- 如何通过Retrofit提交Json格式数据
- 原生javascript实现图片轮播效果——续
- 通过服务器返回来JSON歌词数据进行解析
- [ASP.NET] 如何利用Javascript分割檔案上傳至後端合併
- JS设计模式之模板方法
- (八)JavaScript Date对象属性方法
- ajax获取json对象
- js 格式验证总结
- json_encode转成带 花括号的{ } 和 中括号的[ ] 2种 形式 json数据
- 浅谈JavaScript的全局变量与局部变量