package Ġcom . github . mgr zes z cz ak . json dsl Ċ Ċ import Ġcom . google . gson . JsonArray Ċ import Ġcom . google . gson . Json Element Ċ import Ġcom . google . gson . JsonObject Ċ import Ġjava . util .* ĊĊ Ċ class ĠJson Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġobj ( content : ĠBuilder . () Ġ-> ĠUnit ): ĠJsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . content () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbuilder . obj ( content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġarray ( var arg Ġargs : ĠAny ): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠJson Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠChar Ġ-> Ġarray . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġarray . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġarray . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġarray . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJson Element Ġ-> Ġarray . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġarray . add ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass ĠBuilder Ġinternal Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġobjects Ġ= ĠStack < JsonObject >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcurrent : ĠJsonObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġobjects . peek () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġarray ( var arg Ġargs : ĠAny ): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠJson . array (* args ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġobj ( content : ĠBuilder . () Ġ-> ĠUnit ): ĠJsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects . push ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects . pop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobj ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġin fix Ġfun ĠString . to ( value : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠChar Ġ-> Ġcurrent . addProperty ( this , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġcurrent . addProperty ( this , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġcurrent . addProperty ( this , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġcurrent . addProperty ( this , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJson Element Ġ-> Ġcurrent . add ( this , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcurrent . addProperty ( this , Ġvalue . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects . add ( JsonObject ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ