package Ġcom . tern ary op . utils . json Ċ Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . HashMap Ċ Ċ val ĠJSONObject . isEmpty Object : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġnames () Ġ== Ġnull Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun ĠAny . toJSON (): ĠAny Ġ{ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠMap < *, Ġ*> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġkeys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put ( key . toString (), Ġthis . get ( key ) !!. toJSON ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠIterable < *> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( value Ġin Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun ĠJSONObject . toMap (): ĠMap < String , ĠAny > Ġ{ ĊĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠ Ġval Ġkeys Ġ= Ġkeys () ĊĠĠĠ Ġwhile Ġ( keys . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġkeys . next () ĊĠĠĠĠĠĠĠ Ġget ( key ). fromJson ()?. let Ġ{ Ġmap [ key ] Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġmap Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun ĠAny . fromJson (): ĠAny ? Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġ=== ĠJSONObject . NULL Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠJSONObject Ġ-> Ġto Map () ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠJSONArray Ġ-> Ġto List () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun ĠJSONArray . toList (): ĠList < Any > Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Any >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġget ( i ). fromJson ()?. let Ġ{ Ġlist . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġlist Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun ĠJSONObject . getMap ( key : ĠString ): ĠMap < String , ĠAny > Ġ= Ġget JSONObject ( key ). toMap () ĊĊ