package Ġfi . halt u . h arr ast us pass i . utils Ċ Ċ import Ġfi . halt u . h arr ast us pass i . models . Category Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ Ċ fun Ġget Optional JSONObject ( json : ĠJSONObject , Ġkey : ĠString ): ĠJSONObject ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( json . isNull ( key )) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġjson . getJSONObject ( key ) Ċ } Ċ Ċ fun Ġget Optional Double ( json : ĠJSONObject , Ġkey : ĠString ): ĠDouble ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( json . isNull ( key )) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġjson . getDouble ( key ) Ċ } Ċ Ċ fun Ġget Optional Int ( json : ĠJSONObject , Ġkey : ĠString ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( json . isNull ( key )) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġjson . getInt ( key ) Ċ } Ċ Ċ fun Ġget Optional String ( json : ĠJSONObject , Ġkey : ĠString ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( json . isNull ( key )) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġjson . getString ( key ) Ċ } Ċ Ċ fun Ġjson Array To Category List ( json Array : ĠJSONArray ): ĠArrayList < Category > Ġ{ ĊĠĠĠ Ġval Ġcategory List Ġ= ĠArrayList < Category >() ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjson Array . length ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= ĠCategory () ĊĊĠĠĠĠĠĠĠ Ġval Ġstring Object Ġ= Ġjson Array . get ( i ). toString () ĊĠĠĠĠĠĠĠ Ġval Ġcategory Json Ġ= ĠJSONObject ( string Object ) ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġget Optional Int ( category Json , Ġ" id ") ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġcategory Json . getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġname Fi Ġ= Ġcategory Json . getString (" name _ fi ") ĊĠĠĠĠĠĠĠ Ġval Ġname En Ġ= Ġcategory Json . getString (" name _ en ") ĊĠĠĠĠĠĠĠ Ġval Ġname Sv Ġ= Ġcategory Json . getString (" name _ sv ") ĊĠĠĠĠĠĠĠ Ġval Ġtree Id Ġ= Ġget Optional Int ( category Json , Ġ" tree _ id ") ĊĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġget Optional Int ( category Json , Ġ" level ") ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġget Optional Int ( category Json , Ġ" parent ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Category Json Ġ= Ġcategory Json . get JSONArray (" child _ categories ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Categories Ġ= Ġjson Array To Category List ( sub Category Json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . child Categories Ġ= Ġsub Categories ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcategory . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Fi Ġ= Ġname Fi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name En Ġ= Ġname En ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Sv Ġ= Ġname Sv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . tree Id Ġ= Ġtree Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . level Ġ= Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġparent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcategory List . add ( category ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġcategory List Ċ } Ċ Ċ fun Ġjson Array To Single Category List ( json Array : ĠJSONArray ): ĠArrayList < Category > Ġ{ ĊĠĠĠ Ġvar Ġcategory List Ġ= ĠArrayList < Category >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjson Array . length ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= ĠCategory () ĊĊĠĠĠĠĠĠĠ Ġval Ġstring Object Ġ= Ġjson Array . get ( i ). toString () ĊĠĠĠĠĠĠĠ Ġval Ġcategory Json Ġ= ĠJSONObject ( string Object ) ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġget Optional Int ( category Json , Ġ" id ") ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġcategory Json . getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġname Fi Ġ= Ġcategory Json . getString (" name _ fi ") ĊĠĠĠĠĠĠĠ Ġval Ġname En Ġ= Ġcategory Json . getString (" name _ en ") ĊĠĠĠĠĠĠĠ Ġval Ġname Sv Ġ= Ġcategory Json . getString (" name _ sv ") ĊĠĠĠĠĠĠĠ Ġval Ġtree Id Ġ= Ġget Optional Int ( category Json , Ġ" tree _ id ") ĊĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġget Optional Int ( category Json , Ġ" level ") ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġget Optional Int ( category Json , Ġ" parent ") ĊĊĠĠĠĠĠĠĠ Ġcategory . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Fi Ġ= Ġname Fi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name En Ġ= Ġname En ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Sv Ġ= Ġname Sv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . tree Id Ġ= Ġtree Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . level Ġ= Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġparent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcategory List . add ( category ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcategory List Ċ } ĊĊĊ