comparison src/luan/lib/json/JsonToString.java @ 1295:9dca1e912658

improve web shell
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 10 Jan 2019 21:42:11 -0700
parents b70102bab110
children 6c8ceca4a10b
comparison
equal deleted inserted replaced
1294:2555154ad19f 1295:9dca1e912658
27 }; 27 };
28 jts.toString(obj,sb,0); 28 jts.toString(obj,sb,0);
29 return sb.toString(); 29 return sb.toString();
30 } 30 }
31 31
32 public static String encodeString(String s) {
33 StringBuilder sb = new StringBuilder();
34 encodeString(s,sb);
35 return sb.toString();
36 }
37
32 private void toString(Object obj,StringBuilder sb,int indented) throws JsonException { 38 private void toString(Object obj,StringBuilder sb,int indented) throws JsonException {
33 if( obj == null || obj instanceof Boolean || obj instanceof Number ) { 39 if( obj == null || obj instanceof Boolean || obj instanceof Number ) {
34 sb.append(obj); 40 sb.append(obj);
35 return; 41 return;
36 } 42 }
47 return; 53 return;
48 } 54 }
49 throw new JsonException("can't handle type "+obj.getClass().getName()); 55 throw new JsonException("can't handle type "+obj.getClass().getName());
50 } 56 }
51 57
52 private void toString(final String s,StringBuilder sb) { 58 private static void toString(final String s,StringBuilder sb) {
53 sb.append('"'); 59 sb.append('"');
60 encodeString(s,sb);
61 sb.append('"');
62 }
63
64 private static void encodeString(final String s,StringBuilder sb) {
54 for( int i=0; i<s.length(); i++ ) { 65 for( int i=0; i<s.length(); i++ ) {
55 char c = s.charAt(i); 66 char c = s.charAt(i);
56 switch(c) { 67 switch(c) {
57 case '"': 68 case '"':
58 sb.append("\\\""); 69 sb.append("\\\"");
70 break;
71 case '\'':
72 sb.append("\\'");
59 break; 73 break;
60 case '\\': 74 case '\\':
61 sb.append("\\\\"); 75 sb.append("\\\\");
62 break; 76 break;
63 case '\b': 77 case '\b':
77 break; 91 break;
78 default: 92 default:
79 sb.append(c); 93 sb.append(c);
80 } 94 }
81 } 95 }
82 sb.append('"');
83 } 96 }
84 97
85 private void toString(List list,StringBuilder sb,int indented) { 98 private void toString(List list,StringBuilder sb,int indented) {
86 sb.append('['); 99 sb.append('[');
87 if( !list.isEmpty() ) { 100 if( !list.isEmpty() ) {