package Ġcom . sel jab ali . core . utilities Ċ Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . JsonObject Ċ import Ġcom . google . gson . Json Parser Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util . ArrayList Ċ Ċ object ĠGson Util Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠtoJson String (` object `: ĠAny ): ĠString Ġ= ĠGson Builder (). create (). toJson (` object `) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġget Models FromJson Array ( args : ĠJSONArray , clazz : ĠClass < T >): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparsed Models Ġ= ĠArrayList < T >() ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġargs . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġargs . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠgetModel FromJson ( jsonObject , Ġclazz ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparsed Models . add ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġparsed Models ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠgetModel FromJson ( jsonObject : ĠJsonObject , Ġclazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Text Ġ= ĠjsonObject . toString () ĊĠĠĠĠĠĠĠ Ġval Ġgson Json Ġ= ĠJson Parser (). parse ( json Text ). as JsonObject ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder (). create (). fromJson ( gson Json , Ġclazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠgetModel FromJson ( jsonObject : ĠJSONObject , Ġclazz : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Text Ġ= ĠjsonObject . toString () ĊĠĠĠĠĠĠĠ Ġval Ġgson Json Ġ= ĠJson Parser (). parse ( json Text ). as JsonObject ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder (). create (). fromJson ( gson Json , Ġclazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠgetModel FromString ( json String : ĠString , Ġclazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Json Ġ= ĠJson Parser (). parse ( json String ). as JsonObject ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder (). create (). fromJson ( gson Json , Ġclazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠgetModel Clone ( model : ĠT , Ġclazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Json Ġ= ĠJson Parser (). parse ( toJson String ( model )). as JsonObject ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder (). create (). fromJson ( gson Json , Ġclazz ) ĊĠĠĠ Ġ} Ċ Ċ }