特殊字符以前都是禁止页面输入,这样就简单不容易出错,但最近需求要求能输入特殊字符
整理出java返回json时特殊字符的转义(不转义会破坏json数据格式导致页面读取数据出错)
Java代码
1 public static String string2Json(String s) { 2 StringBuffer sb = new StringBuffer (); 3 for (int i=0; i<s.length(); i++) { 4 5 char c = s.charAt(i); 6 switch (c) { 7 case '"': 8 sb.append("\""); 9 break; 10 case '\': 11 sb.append("\\"); 12 break; 13 case '/': 14 sb.append("\/"); 15 break; 16 case '': 17 sb.append("\b"); 18 break; 19 case 'f': 20 sb.append("\f"); 21 break; 22 case ' ': 23 sb.append("\n"); 24 break; 25 case ' ': 26 sb.append("\r"); 27 break; 28 case ' ': 29 sb.append("\t"); 30 break; 31 default: 32 sb.append(c); 33 } 34 } 35 return sb.toString(); 36 }
JS代码
1 function string2Json(s) { 2 var newstr = ""; 3 for (var i=0; i<s.length; i++) { 4 c = s.charAt(i); 5 switch (c) { 6 case '"': 7 newstr+="\""; 8 break; 9 case '\': 10 newstr+="\\"; 11 break; 12 case '/': 13 newstr+="\/"; 14 break; 15 case '': 16 newstr+="\b"; 17 break; 18 case 'f': 19 newstr+="\f"; 20 break; 21 case ' ': 22 newstr+="\n"; 23 break; 24 case ' ': 25 newstr+="\r"; 26 break; 27 case ' ': 28 newstr+="\t"; 29 break; 30 default: 31 newstr+=c; 32 } 33 } 34 return newstr; 35 }