使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。 使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。 //当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号 public static String stringToJson(String s) { StringBuffer sb = new StringBuffer (); for (int i=0; i<s.length(); i++) { char c = 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); }} return sb.toString(); } //注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串 //处理文本中的单引号 和 斜杠 public static String StringDanYinToJSON(String ors) { ors = ors == null ? "" : ors; StringBuffer buffer = new StringBuffer(ors); int i = 0; while (i < buffer.length()) { if (buffer.charAt(i) == '\'' || buffer.charAt(i) == '\\') { buffer.insert(i, '\\'); i += 2; } else { i++; } } return buffer.toString(); }