package Ġcom . bad oo . k ex as ol . json Ċ Ċ import Ġcom . squareup . mos hi .* Ċ Ċ internal Ġclass ĠEx a Data Json Adapter Ġ{ ĊĠĠĠ Ġ@ FromJson ĊĠĠĠ Ġ@ Json Ex a Data ĊĠĠĠ Ġfun Ġfrom Json ( reader : ĠJson Reader ): ĠList < List < Any ? >> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġouter List Ġ= Ġmutable ListOf < List < Any ? >>() ĊĊĠĠĠĠĠĠĠ Ġreader . begin Array () ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( reader . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . begin Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner List Ġ= Ġmutable ListOf < Any ?> () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( reader . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( reader . peek ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Reader . Token . BOOLEAN Ġ-> Ġreader . next Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson Reader . Token . NULL Ġ-> Ġreader . next Null () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreader . next String () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader . end Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġouter List . add ( inner List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreader . end Array () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġouter List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ToJson ĊĠĠĠ Ġfun ĠtoJson ( ĊĠĠĠĠĠĠĠ Ġwriter : ĠJson Writer , ĊĠĠĠĠĠĠĠ Ġ@ Json Ex a Data Ġouter List : ĠList < @ Jvm Suppress W ild cards ĠList < @ Jvm Suppress W ild cards ĠAny ? >> ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( outer List Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . null Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwriter . begin Array () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( inner List Ġin Ġouter List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . begin Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġinner List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean ? Ġ-> Ġwriter . value ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString ? Ġ-> Ġwriter . value ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unsupported Ġdata Ġtype Ġfor Ġ@ Json Ex a Data Ġwriter ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . end Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwriter . end Array () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Json Qualifier Ċ internal Ġannotation Ġclass ĠJson Ex a Data Ċ