Mercurial Hosting > luan
diff src/goodjava/json/JsonToString.java @ 1419:59fd2e8b1b9d
stringify and json_string
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 25 Oct 2019 22:12:06 -0600 |
parents | 27efb1fcbcb5 |
children | 509736ad42e6 |
line wrap: on
line diff
--- a/src/goodjava/json/JsonToString.java Fri Oct 18 22:29:46 2019 -0600 +++ b/src/goodjava/json/JsonToString.java Fri Oct 25 22:12:06 2019 -0600 @@ -5,7 +5,11 @@ import java.util.Iterator; -public class JsonToString { +public final class JsonToString { + public boolean compressed = false; + + private String colon; + private String comma; public static final class JsonException extends RuntimeException { private JsonException(String msg) { @@ -13,19 +17,13 @@ } } - public static String toString(Object obj) throws JsonException { + public String toString(Object obj) throws JsonException { + colon = compressed ? ":" : ": "; + comma = compressed ? "," : ", "; StringBuilder sb = new StringBuilder(); - new JsonToString().toString(obj,sb,0); - sb.append('\n'); - return sb.toString(); - } - - public static String toCompressedString(Object obj) throws JsonException { - StringBuilder sb = new StringBuilder(); - JsonToString jts = new JsonToString() { - void indent(StringBuilder sb,int indented) {} - }; - jts.toString(obj,sb,0); + toString(obj,sb,0); + if( !compressed ) + sb.append('\n'); return sb.toString(); } @@ -124,7 +122,7 @@ indent(sb,indented+1); toString(list.get(0),sb,indented+1); for( int i=1; i<list.size(); i++ ) { - sb.append(", "); + sb.append(comma); toString(list.get(i),sb,indented+1); } indent(sb,indented); @@ -154,16 +152,17 @@ if( !(key instanceof String) ) throw new JsonException("table keys must be strings"); toString((String)key,sb); - sb.append(": "); + sb.append(colon); toString(entry.getValue(),sb,indented); } - void indent(StringBuilder sb,int indented) { + private void indent(StringBuilder sb,int indented) { + if( compressed ) + return; sb.append('\n'); for( int i=0; i<indented; i++ ) { sb.append('\t'); } } - private JsonToString() {} }