Mercurial Hosting > luan
diff 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 |
line wrap: on
line diff
--- a/src/luan/lib/json/JsonToString.java Thu Jan 10 18:22:52 2019 -0700 +++ b/src/luan/lib/json/JsonToString.java Thu Jan 10 21:42:11 2019 -0700 @@ -29,6 +29,12 @@ return sb.toString(); } + public static String encodeString(String s) { + StringBuilder sb = new StringBuilder(); + encodeString(s,sb); + return sb.toString(); + } + private void toString(Object obj,StringBuilder sb,int indented) throws JsonException { if( obj == null || obj instanceof Boolean || obj instanceof Number ) { sb.append(obj); @@ -49,14 +55,22 @@ throw new JsonException("can't handle type "+obj.getClass().getName()); } - private void toString(final String s,StringBuilder sb) { + private static void toString(final String s,StringBuilder sb) { + sb.append('"'); + encodeString(s,sb); sb.append('"'); + } + + private static void encodeString(final String s,StringBuilder sb) { for( int i=0; i<s.length(); i++ ) { char c = s.charAt(i); switch(c) { case '"': sb.append("\\\""); break; + case '\'': + sb.append("\\'"); + break; case '\\': sb.append("\\\\"); break; @@ -79,7 +93,6 @@ sb.append(c); } } - sb.append('"'); } private void toString(List list,StringBuilder sb,int indented) {