package Ġme . anno . io . json Ċ Ċ import Ġme . anno . utils . types . Strings Ċ import Ġjava . io . OutputStream Ċ Ċ /** Ċ Ġ* Ġsimple Ġclass Ġto Ġwrite ĠJSON Ġcontent ; Ġif Ġyou Ġwrite ĠSave ables , Ġconsider ĠBinary Writer Ġand ĠText Writer Ġfirst ! Ċ Ġ* Ġused Ġin ĠRem 's ĠStudio Ġto Ġsave ĠUI Ġlayout Ċ Ġ* Ġ*/ Ċ @ Suppress (" unused ") Ċ class ĠJson Writer ( val Ġoutput : ĠOutputStream ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfirst Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġis KeyValue Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġwrite String ( value : ĠString ){ ĊĠĠĠĠĠĠĠ Ġoutput . write ('" '. code ) ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ ĠStrings . write Esc aped ( value , Ġsb ) ĊĠĠĠĠĠĠĠ Ġoutput . write ( sb . toString (). toByteArray ()) ĊĠĠĠĠĠĠĠ Ġoutput . write ('" '. code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkey Value ( key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġwrite String ( key ) ĊĠĠĠĠĠĠĠ Ġis KeyValue Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnext (){ ĊĠĠĠĠĠĠĠ Ġif (! first ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . write ( if Ġ( is KeyValue ) Ġ': '. code Ġelse Ġ',' . code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis KeyValue Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfirst Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( b : ĠBoolean ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġif ( b ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . write (" true ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . write (" false ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( i : ĠInt ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġoutput . write ( i . toString (). toByteArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( l : ĠLong ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġoutput . write ( l . toString (). toByteArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( f : ĠFloat ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġoutput . write ( f . toString (). toByteArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( d : ĠDouble ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġoutput . write ( d . toString (). toByteArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite ( value : ĠString ){ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġwrite String ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen ( array : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġoutput . write ( if Ġ( array ) Ġ'[' . code Ġelse Ġ'{ '. code ) ĊĠĠĠĠĠĠĠ Ġfirst Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose ( array : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoutput . write ( if Ġ( array ) Ġ'] '. code Ġelse Ġ' }'. code ) ĊĠĠĠĠĠĠĠ Ġfirst Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ Ċ }