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