2828
2929class HjsonWriter {
3030
31- private boolean emitRootBraces ;
3231 private IHjsonDsfProvider [] dsfProviders ;
3332
3433 static Pattern needsEscapeName =Pattern .compile ("[,\\ {\\ [\\ }\\ ]\\ s:#\" ]|//|/\\ *|'''" );
3534
3635 public HjsonWriter (HjsonOptions options ) {
3736 if (options !=null ) {
38- emitRootBraces =options .getEmitRootBraces ();
3937 dsfProviders =options .getDsfProviders ();
4038 } else {
41- emitRootBraces =true ;
4239 dsfProviders =new IHjsonDsfProvider [0 ];
4340 }
4441 }
@@ -48,7 +45,7 @@ void nl(Writer tw, int level) throws IOException {
4845 for (int i =0 ; i <level ; i ++) tw .write (" " );
4946 }
5047
51- public void save (JsonValue value , Writer tw , int level , String separator , boolean noIndent , boolean isRootObject ) throws IOException {
48+ public void save (JsonValue value , Writer tw , int level , String separator , boolean noIndent ) throws IOException {
5249 if (value ==null ) {
5350 tw .write (separator );
5451 tw .write ("null" );
@@ -67,23 +64,18 @@ public void save(JsonValue value, Writer tw, int level, String separator, boolea
6764 switch (value .getType ()) {
6865 case OBJECT :
6966 JsonObject obj =value .asObject ();
70- boolean showBraces =!isRootObject || emitRootBraces ;
7167 if (!noIndent ) { if (obj .size ()>0 ) nl (tw , level ); else tw .write (separator ); }
72- if (showBraces ) tw .write ('{' );
73- else level --; // reduce level for root
68+ tw .write ('{' );
7469
75- boolean skipFirst =!showBraces ;
7670 for (JsonObject .Member pair : obj ) {
77- if (! skipFirst ) nl (tw , level +1 ); else skipFirst = false ;
71+ nl (tw , level +1 );
7872 tw .write (escapeName (pair .getName ()));
7973 tw .write (":" );
80- save (pair .getValue (), tw , level +1 , " " , false , false );
74+ save (pair .getValue (), tw , level +1 , " " , false );
8175 }
8276
83- if (showBraces ) {
84- if (obj .size ()>0 ) nl (tw , level );
85- tw .write ('}' );
86- }
77+ if (obj .size ()>0 ) nl (tw , level );
78+ tw .write ('}' );
8779 break ;
8880 case ARRAY :
8981 JsonArray arr =value .asArray ();
@@ -92,7 +84,7 @@ public void save(JsonValue value, Writer tw, int level, String separator, boolea
9284 tw .write ('[' );
9385 for (int i =0 ; i <n ; i ++) {
9486 nl (tw , level +1 );
95- save (arr .get (i ), tw , level +1 , "" , true , false );
87+ save (arr .get (i ), tw , level +1 , "" , true );
9688 }
9789 if (n >0 ) nl (tw , level );
9890 tw .write (']' );
0 commit comments