package Ġme . developers an cho . pref store . gson Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . reflect . Type Token Ċ Ċ val Ġget Gson : ĠGson ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . serialize Null s (). set Len ient () ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . set Pretty Print ing (). create () ĊĠĠĠ Ġ} ĊĊ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . convert Json (): ĠString Ġ= Ġget Gson . toJson ( this ) Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠAny . convert Model (): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Gson . fromJson ( this , ĠT :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġas ĠT ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . convert List (): ĠT ? Ġ= ĊĠĠĠ Ġget Gson . fromJson < T >( this , Ġobject Ġ: ĠType Token < T >() Ġ{} . type ) Ċ Ċ /*** Ċ Ġ* Ġconvert Ġan Ġobject Ġof Ġtype ĠI Ġto ĠO Ċ Ġ*/ Ċ inline Ġfun Ġ< I , Ġre ified ĠO > ĠI . convert (): ĠO Ġ{ ĊĠĠĠ Ġval Ġjson Ġ= Ġget Gson . toJson ( this ) ĊĠĠĠ Ġreturn Ġget Gson . fromJson ( json , Ġobject Ġ: ĠType Token < O >() Ġ{} . type ) Ċ } ĊĊ Ċ /*** Ċ Ġ* Ġconvert Ġa Ġmap Ġto Ġa Ġdata Ġclass Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠMap < String , ĠAny >. to Data Class (): ĠT Ġ= Ġconvert () Ċ Ċ /*** Ċ Ġ* Ġconvert Ġa Ġdata Ġclass Ġto Ġa Ġmap Ċ Ġ*/ Ċ fun Ġ< T > ĠT . serialize ToMap (): ĠMap < String , ĠAny > Ġ= Ġconvert ()