package Ġme . developers an cho . pref store . mos hi Ċ Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . Types Ċ import Ġcom . squareup . mos hi . kotlin . reflect . Kotlin Json Adapter Factory Ċ Ċ val Ġget M oshi : ĠM oshi Ġ= ĠM oshi . Builder () ĊĠĠĠ Ġ. add Last ( Kotlin Json Adapter Factory ()) ĊĠĠĠ Ġ. build () Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . deserialize (): ĠT ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Adapter Ġ= Ġget M oshi . adapter ( T :: class . java ) ĊĠĠĠĠĠĠĠ Ġjson Adapter . fromJson ( this ) ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠString . deserialize List (): ĠList < T >? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠTypes . new Parameterized Type ( Mutable List :: class . java , ĠT :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġjson Adapter : ĠJson Adapter < List < T >> Ġ= Ġget M oshi . adapter ( type ) ĊĠĠĠĠĠĠĠ Ġjson Adapter . fromJson ( this ) ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Suppress (" Check Result ") Ċ fun ĠString . can ConvertTo ( type : ĠClass < *> ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Adapter Ġ= Ġget M oshi . adapter ( type ) ĊĠĠĠĠĠĠĠ Ġjson Adapter . fromJson ( this ) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexception . printStackTrace () ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . serialize (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Adapter Ġ= Ġget M oshi . adapter ( T :: class . java ) ĊĠĠĠĠĠĠĠ Ġjson Adapter . toJson ( this ) ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* ĠEX AMPLE Ċ data Ġclass ĠPerson ( var Ġname : ĠString ) Ċ Ċ ### ĠDeserialize ĠJson Ġobject Ċ private Ġval Ġperson Json Ġ= Ġ"{\" name \":\" Mr . San che z \" }" Ċ val Ġperson : ĠPerson ? Ġ= Ġperson Json . deserialize < Person >() Ċ Ċ ### ĠDeserialize ĠJson Ġarray Ċ private Ġval Ġpersons Json Ġ= Ġ"[ {\" name \":\" Mr . San che z \" },{ \" name \":\" Mr . W ick \" }] " Ċ val Ġpersons : ĠList < Person >? Ġ= Ġpersons Json . deserialize List () Ċ Ċ ### ĠSerialize ĠJson Ċ private Ġval Ġperson : ĠPerson Ġ= ĠPerson (" Mr . San che z ") Ċ val Ġserialized Object Ġ= Ġperson . serialize () Ċ Ċ ### ĠCheck Ġif Ġyou Ġcan Ġconvert Ġjson Ġto Ġa Ġparticular Ġtype Ċ val Ġcan Convert Person Json To Person : ĠBoolean Ġ= Ġperson Json . can ConvertTo ( Person :: class . java ) Ġ// true ĊĊĊ Ġ*/ Ċ