@ file : Suppress (" unused ", Ġ" Member Visibility Can Be Private ", Ġ" D uplicated Code ", Ġ" Same Parameter Value ") Ċ Ċ package Ġcom . is ys core . kotlin . common . json Ċ Ċ import Ġjava . io . IOException Ċ import Ġjava . io . String Writer Ċ import Ġjava . io . Writer Ċ import Ġjava . lang . reflect . Array Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . math . BigInteger Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . Linked HashMap Ċ Ċ class ĠJSONArray Ġ: ĠIterable < Any ?> Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmy ArrayList : ĠArrayList < Any ?> ĊĊĠĠĠ Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy ArrayList Ġ= ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( x : ĠJSON Tok ener ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( x . next Clean () Ġ!= Ġ'[ ') Ġthrow Ġx . syntax Error (" A ĠJSONArray Ġtext Ġmust Ġstart Ġwith Ġ'[' ") ĊĠĠĠĠĠĠĠ Ġvar Ġnext Char Ġ= Ġx . next Clean () ĊĠĠĠĠĠĠĠ Ġif Ġ( next Char . code Ġ== Ġ 0 ) Ġthrow Ġx . syntax Error (" Expected Ġa Ġ',' Ġor Ġ' ]' ") ĊĠĠĠĠĠĠĠ Ġif Ġ( next Char Ġ!= Ġ' ]') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x . next Clean () Ġ== Ġ', ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList . add ( JSONObject . NULL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList . add ( x . next Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( x . next Clean ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . to Char () Ġ-> Ġthrow Ġx . syntax Error (" Expected Ġa Ġ',' Ġor Ġ' ]' ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ',' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Char Ġ= Ġx . next Clean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Char . code Ġ== Ġ 0 ) Ġthrow Ġx . syntax Error (" Expected Ġa Ġ',' Ġor Ġ' ]' ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Char Ġ== Ġ' ]') Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' ]' Ġ-> Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġx . syntax Error (" Expected Ġa Ġ',' Ġor Ġ' ]' ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( source : ĠString ) Ġ: Ġthis ( JSON Tok ener ( source )) ĊĊĠĠĠ Ġconstructor ( collection : ĠCollection < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( collection Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList Ġ= ĠArrayList ( collection . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . addAll ( collection , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( iter : ĠIterable < *> ?) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( iter Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġthis . addAll ( iter , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( array : ĠJSONArray ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmy ArrayList Ġ= Ġif Ġ( array Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList ( array . my ArrayList ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( array : ĠAny ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! array . java Class . isArray ) Ġthrow ĠJSON Exception (" JSONArray Ġinitial Ġvalue Ġshould Ġbe Ġa Ġstring Ġor Ġcollection Ġor Ġarray .") ĊĠĠĠĠĠĠĠ Ġthis . addAll ( array , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( initial Capacity : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( initial Capacity Ġ< Ġ 0 ) Ġthrow ĠJSON Exception (" JSONArray Ġinitial Ġcapacity Ġcannot Ġbe Ġnegative .") ĊĠĠĠĠĠĠĠ Ġmy ArrayList Ġ= ĠArrayList ( initial Capacity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Any ?> Ġ= Ġmy ArrayList . iterator () ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġoperator Ġfun Ġget ( index : ĠInt ): ĠAny Ġ= Ġopt ( index ) Ġ?: Ġthrow ĠJSON Exception (" JSONArray [$ index ] Ġnot Ġfound .") ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Boolean ( index : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġif Ġ( o Ġ== Ġjava . lang . Boolean . FALSE Ġ|| Ġo Ġis ĠString Ġ&& Ġo . equals (" false ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( o Ġ== Ġjava . lang . Boolean . TRUE Ġ|| Ġo Ġis ĠString Ġ&& Ġo . equals (" true ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" boolean ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Double ( index : ĠInt ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toDouble () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toString (). toDouble () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" double ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Float ( index : ĠInt ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toFloat () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toString (). toFloat () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" float ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Number ( index : ĠInt ): ĠNumber Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o Ġis ĠNumber ) Ġo Ġelse ĠJSONObject . string To Number ("$ o ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" number ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġ< E Ġ: ĠEnum < E > ?> Ġget Enum ( clazz : ĠClass < E >, Ġindex : ĠInt ): ĠE Ġ= Ġopt Enum ( clazz , Ġindex ) Ġ?: Ġthrow Ġwrong Value FormatException ( index , Ġ" enum Ġof Ġtype Ġ" Ġ+ ĠJSONObject . quote ( clazz . simple Name ), Ġnull ) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget BigDecimal ( index : ĠInt ): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn ĠJSONObject . object To BigDecimal ( o , Ġnull ) Ġ?: Ġthrow Ġwrong Value FormatException ( index , Ġ" BigDecimal ", Ġo , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget BigInteger ( index : ĠInt ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn ĠJSONObject . object To BigInteger ( o , Ġnull ) Ġ?: Ġthrow Ġwrong Value FormatException ( index , Ġ" BigInteger ", Ġo , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Int ( index : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" int ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget JSONArray ( index : ĠInt ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠJSONArray ) Ġo Ġelse Ġthrow Ġwrong Value FormatException ( index , Ġ" JSONArray ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget JSONObject ( index : ĠInt ): ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠJSONObject ) Ġo Ġelse Ġthrow Ġwrong Value FormatException ( index , Ġ" JSONObject ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġget Long ( index : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . to Long () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . toString (). to Long () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġwrong Value FormatException ( index , Ġ" long ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun ĠgetString ( index : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġthis [ index ] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠString ) Ġo Ġelse Ġthrow Ġwrong Value FormatException ( index , Ġ" String ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Null ( index : ĠInt ): ĠBoolean Ġ= ĠJSONObject . NULL Ġ== Ġopt ( index ) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġjoin ( separator : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġlength () ĊĠĠĠĠĠĠĠ Ġif Ġ( len Ġ== Ġ 0 ) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder ( JSONObject . value ToString ( my ArrayList [ 0 ])) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġlen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( separator ). append ( JSONObject . value ToString ( my ArrayList [ i ])) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlength (): ĠInt Ġ= Ġmy ArrayList . size ĊĊĠĠĠ Ġfun Ġopt ( index : ĠInt ): ĠAny ? Ġ= Ġif Ġ( index Ġ< Ġ 0 Ġ|| Ġindex Ġ>= Ġlength ()) Ġnull Ġelse Ġmy ArrayList [ index ] ĊĊĠĠĠ Ġfun Ġopt Boolean ( index : ĠInt , ĠdefaultValue : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġget Boolean ( index ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt Double ( index : ĠInt , ĠdefaultValue : ĠDouble Ġ= ĠDouble . NaN ) Ġ= Ġ( opt Number ( index , Ġnull ) Ġ?: ĠdefaultValue ). toDouble () ĊĊĠĠĠ Ġfun Ġopt Float ( index : ĠInt , ĠdefaultValue : ĠFloat Ġ= ĠFloat . NaN ) Ġ= Ġ( opt Number ( index , Ġnull ) Ġ?: ĠdefaultValue ). toFloat () ĊĊĠĠĠ Ġfun Ġopt Int ( index : ĠInt , ĠdefaultValue : ĠInt Ġ= Ġ 0 ) Ġ= Ġ( opt Number ( index , Ġnull ) Ġ?: ĠdefaultValue ). toInt () ĊĊĠĠĠ Ġfun Ġ< E Ġ: ĠEnum < E > ?> Ġopt Enum ( clazz : ĠClass < E >, Ġindex : ĠInt ): ĠE ? Ġ= Ġthis . opt Enum ( clazz , Ġindex , Ġnull ) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġ< E Ġ: ĠEnum < E > ?> Ġopt Enum ( clazz : ĠClass < E >, Ġindex : ĠInt , ĠdefaultValue : ĠE ?): ĠE ? Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġopt ( index ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv Ġ== ĠJSONObject . NULL Ġ-> ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclazz . isAssignableFrom ( v !!. java Class ) Ġ-> Ġv Ġas ĠE ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġjava . lang . Enum . valueOf ( clazz , Ġv . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt BigInteger ( index : ĠInt , ĠdefaultValue : ĠBigInteger ?): ĠBigInteger ? Ġ= ĠJSONObject . object To BigInteger ( opt ( index ), ĠdefaultValue ) ĊĊĠĠĠ Ġfun Ġopt BigDecimal ( index : ĠInt , ĠdefaultValue : ĠBigDecimal ?): ĠBigDecimal ? Ġ= ĠJSONObject . object To BigDecimal ( opt ( index ), ĠdefaultValue ) ĊĊĠĠĠ Ġfun Ġopt JSONArray ( index : ĠInt ): ĠJSONArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġopt ( index ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠJSONArray ) Ġo Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt JSONObject ( index : ĠInt ): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġopt ( index ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġis ĠJSONObject ) Ġo Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt Long ( index : ĠInt , ĠdefaultValue : ĠLong Ġ= Ġ 0 ) Ġ= Ġ( opt Number ( index , Ġnull ) Ġ?: ĠdefaultValue ). to Long () ĊĊĠĠĠ Ġfun Ġopt Number ( index : ĠInt , ĠdefaultValue : ĠNumber ? Ġ= Ġnull ): ĠNumber ? Ġ= Ġwhen Ġ( val Ġv Ġ= Ġopt ( index )) Ġ{ ĊĠĠĠĠĠĠĠ ĠJSONObject . NULL Ġ-> ĠdefaultValue ĊĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġv ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġtry Ġ{ ĠJSONObject . string To Number ( v ) Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĠdefaultValue Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt String ( index : ĠInt , ĠdefaultValue : ĠString Ġ= Ġ"") : ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġopt ( index ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( o Ġ== ĠJSONObject . NULL ) ĠdefaultValue Ġelse Ġ"$ o " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput ( value : ĠBoolean ): ĠJSONArray Ġ= Ġthis . put ( if Ġ( value ) Ġjava . lang . Boolean . TRUE Ġelse Ġjava . lang . Boolean . FALSE ) ĊĊĠĠĠ Ġfun Ġput ( value : ĠCollection < *> ?): ĠJSONArray Ġ= Ġthis . put ( JSONArray ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( value : ĠDouble ): ĠJSONArray Ġ= Ġthis . put ( java . lang . Double . valueOf ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( value : ĠFloat ): ĠJSONArray Ġ= Ġthis . put ( java . lang . Float . valueOf ( value )) ĊĊĠĠĠ Ġfun Ġput ( value : ĠInt ): ĠJSONArray Ġ= Ġthis . put ( Integer . valueOf ( value )) ĊĊĠĠĠ Ġfun Ġput ( value : ĠLong ): ĠJSONArray Ġ= Ġthis . put ( java . lang . Long . valueOf ( value )) ĊĊĠĠĠ Ġfun Ġput ( value : ĠLinkedHashMap < *, Ġ* >? ): ĠJSONArray Ġ= Ġthis . put ( JSONObject ( value )) ĊĊĠĠĠ Ġfun Ġput ( value : ĠAny ?): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ ĠJSONObject . test Validity ( value ) ĊĠĠĠĠĠĠĠ Ġmy ArrayList . add ( value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠBoolean ): ĠJSONArray Ġ= Ġthis . put ( index , Ġif Ġ( value ) Ġjava . lang . Boolean . TRUE Ġelse Ġjava . lang . Boolean . FALSE ) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠCollection < *> ?): ĠJSONArray Ġ= Ġthis . put ( index , ĠJSONArray ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠDouble ): ĠJSONArray Ġ= Ġthis . put ( index , Ġjava . lang . Double . valueOf ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠFloat ): ĠJSONArray Ġ= Ġthis . put ( index , Ġjava . lang . Float . valueOf ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠInt ): ĠJSONArray Ġ= Ġthis . put ( index , ĠInteger . valueOf ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠLong ): ĠJSONArray Ġ= Ġthis . put ( index , Ġjava . lang . Long . valueOf ( value )) ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠLinkedHashMap < *, Ġ* >? ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . put ( index , ĠJSONObject ( value )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput ( index : ĠInt , Ġvalue : ĠAny ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġ 0 ) Ġthrow ĠJSON Exception (" JSONArray [$ index ] Ġnot Ġfound .") ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġlength ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject . test Validity ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList [ index ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġlength ()) Ġreturn Ġthis . put ( value ) ĊĠĠĠĠĠĠĠ Ġmy ArrayList . ensure Capacity ( index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( index Ġ!= Ġlength ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList . add ( JSONObject . NULL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . put ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput All ( collection : ĠCollection < *> ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . addAll ( collection , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput All ( iter : ĠIterable < *> ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . addAll ( iter , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput All ( array : ĠJSONArray ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġmy ArrayList . addAll ( array . my ArrayList ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġput All ( array : ĠAny ): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . addAll ( array , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery ( json Pointer : ĠString ): ĠAny ? Ġ= Ġquery ( JSON Pointer ( json Pointer )) ĊĊĠĠĠ Ġfun Ġquery ( json Pointer : ĠJSON Pointer ): ĠAny ? Ġ= Ġjson Pointer . query From ( this ) ĊĊĠĠĠ Ġfun Ġopt Query ( json Pointer : ĠString ): ĠAny ? Ġ= Ġopt Query ( JSON Pointer ( json Pointer )) ĊĊĠĠĠ Ġfun Ġopt Query ( json Pointer : ĠJSON Pointer ): ĠAny ? Ġ= Ġtry Ġ{ Ġjson Pointer . query From ( this ) Ġ} Ġcatch Ġ( e : ĠJSON PointerException ) Ġ{ Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġremove ( index : ĠInt ): ĠAny ? Ġ= Ġif Ġ( index Ġ>= Ġ 0 Ġ&& Ġindex Ġ< Ġlength ()) Ġmy ArrayList . remove At ( index ) Ġelse Ġnull ĊĊĠĠĠ Ġfun Ġsimilar ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠJSONArray ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġlength () ĊĠĠĠĠĠĠĠ Ġif Ġ( len Ġ!= Ġother . length ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġlen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue This Ġ= Ġmy ArrayList [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Other Ġ= Ġother . my ArrayList [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value This Ġ=== Ġvalue Other ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value This Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value This Ġis ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! value This . similar ( value Other )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value This Ġis ĠJSONArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! value This . similar ( value Other )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value This Ġ!= Ġvalue Other ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġto JSONObject ( names : ĠJSONArray ?): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( names Ġ== Ġnull Ġ|| Ġnames . isEmpty Ġ|| ĠisEmpty ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġjo Ġ= ĠJSONObject ( names . length ()) ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġnames . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjo . put ( names . getString ( i ), Ġopt ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġjo ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġtry Ġ{ Ġthis . toString ( 0 ) Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ Ġ" null " Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun ĠtoString ( indent Factor : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsw Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġreturn Ġsynchronized ( sw . buffer ) Ġ{ Ġwrite ( sw , Ġindent Factor , Ġ 0 ). toString () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġfun Ġwrite ( writer : ĠWriter , Ġindent Factor : ĠInt Ġ= Ġ 0 , Ġindent : ĠInt Ġ= Ġ 0 ): ĠWriter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġneeds Comma Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġlength () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write (' [' . code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( length Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject . writeValue ( writer , Ġmy ArrayList [ 0 ], Ġindent Factor , Ġindent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception (" Unable Ġto Ġwrite ĠJSONArray Ġvalue Ġat Ġindex : Ġ 0 ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( length Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Indent Ġ= Ġindent Ġ+ Ġindent Factor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( needs Comma ) Ġwriter . write (',' . code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( indent Factor Ġ> Ġ 0 ) Ġwriter . write ('\ n '. code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject . indent ( writer , Ġnew Indent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject . writeValue ( writer , Ġmy ArrayList [ i ], Ġindent Factor , Ġnew Indent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception (" Unable Ġto Ġwrite ĠJSONArray Ġvalue Ġat Ġindex : Ġ$ i ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġneeds Comma Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( indent Factor Ġ> Ġ 0 ) Ġwriter . write ('\ n '. code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject . indent ( writer , Ġindent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write (' ] '. code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto List (): ĠList < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠArrayList < Any ? >( my ArrayList . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin Ġmy ArrayList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( when ( element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĠJSONObject . NULL Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJSONArray Ġ-> Ġelement . toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJSONObject Ġ-> Ġelement . toMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġelement ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠisEmpty : ĠBoolean Ġget () Ġ= Ġmy ArrayList . isEmpty () ĊĊĠĠĠ Ġprivate Ġfun Ġadd All ( collection : ĠCollection <* >, Ġwrap : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmy ArrayList . ensure Capacity ( my ArrayList . size Ġ+ Ġcollection . size ) ĊĠĠĠĠĠĠĠ Ġif Ġ( wrap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( o Ġin Ġcollection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( JSONObject . wrap ( o )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( o Ġin Ġcollection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd All ( iter : ĠIterable <* >, Ġwrap : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( wrap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( o Ġin Ġiter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( JSONObject . wrap ( o )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( o Ġin Ġiter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġadd All ( array : ĠAny , Ġwrap : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . java Class . isArray Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= ĠArray . getLength ( array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy ArrayList . ensure Capacity ( my ArrayList . size Ġ+ Ġlength ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wrap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( JSONObject . wrap ( Array . get ( array , Ġi ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . put ( Array . get ( array , Ġi )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJSONArray Ġ-> Ġmy ArrayList . addAll ( array . my ArrayList ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCollection < *> Ġ-> Ġthis . addAll ( array , Ġwrap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIterable < *> Ġ-> Ġthis . addAll ( array , Ġwrap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠJSON Exception (" JSONArray Ġinitial Ġvalue Ġshould Ġbe Ġa Ġstring Ġor Ġcollection Ġor Ġarray .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġwrong Value FormatException ( idx : ĠInt , Ġvalue Type : ĠString , Ġcause : ĠThrowable ?) Ġ= ĠJSON Exception (" JSONArray [$ idx ] Ġis Ġnot Ġa Ġ$ valueType .", Ġcause ) ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġwrong Value FormatException ( idx : ĠInt , Ġvalue Type : ĠString , Ġvalue : ĠAny , Ġcause : ĠThrowable ?) Ġ= ĠJSON Exception (" JSONArray [$ idx ] Ġis Ġnot Ġa Ġ$ valueType Ġ($ value ). ", Ġcause ) ĊĠĠĠ Ġ} Ċ }