特殊字符以前都是禁止页面输入,这样就简单不容易出错,但最近需求要求能输入特殊字符
整理出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 }