使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。
//当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号
publicstatic String stringToJson(String s){
StringBuffersb = new StringBuffer();
for(int i=0; i<s.length(); i++){
charc =s.charAt(i);
switch(c){
case'\"':
sb.append("\\\"");
break;
// case'\\': //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码
// sb.append("\\\\");
// break;
case'/':
sb.append("\\/");
break;
case'\b': //退格
sb.append("\\b");
break;
case'\f': //走纸换页
sb.append("\\f");
break;
case'\n':
sb.append("\\n");//换行
break;
case'\r': //回车
sb.append("\\r");
break;
case'\t': //横向跳格
sb.append("\\t");
break;
default:
sb.append(c);
}}
returnsb.toString();
}
//注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串
//处理文本中的单引号 和 斜杠
publicstatic String StringDanYinToJSON(String ors) {
ors= ors == null ? "" : ors;
StringBufferbuffer = new StringBuffer(ors);
inti = 0;
while(i < buffer.length()) {
if(buffer.charAt(i) == '\'' || buffer.charAt(i) == '\\') {
buffer.insert(i,'\\');
i+= 2;
}else {
i++;
}
}
returnbuffer.toString();
}