您的位置:首页 > Web前端 > JavaScript

Json 中处理特殊字符

2012-03-30 19:00 330 查看
使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。

使用下面的方法对即将向前台输出的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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: