特殊字符以前都是禁止页面输入,这样就简单不容易出错,但最近需求要求能输入特殊字符
整理出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 '\b': 17 sb.append("\\b"); 18 break; 19 case '\f': 20 sb.append("\\f"); 21 break; 22 case '\n': 23 sb.append("\\n"); 24 break; 25 case '\r': 26 sb.append("\\r"); 27 break; 28 case '\t': 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 '\b': 16 newstr+="\\b"; 17 break; 18 case '\f': 19 newstr+="\\f"; 20 break; 21 case '\n': 22 newstr+="\\n"; 23 break; 24 case '\r': 25 newstr+="\\r"; 26 break; 27 case '\t': 28 newstr+="\\t"; 29 break; 30 default: 31 newstr+=c; 32 } 33 } 34 return newstr; 35 }