package Ġio . fluid sonic . json Ċ Ċ import Ġjava . io .* ĊĊ Ċ public Ġinterface ĠJson Parser Ġ{ ĊĊ ĉ public Ġfun Ġparse List ( source : ĠJson Reader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠList < *> Ġ= Ċĉ ĉ parse Value As Type ( source , Ġwith Termination Ġ= Ġwith Termination ) ĊĊĊ ĉ public Ġfun Ġparse Map ( source : ĠJson Reader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠMap < String , Ġ*> Ġ= Ċĉ ĉ parse Value As Type ( source , Ġwith Termination Ġ= Ġwith Termination ) ĊĊĊ ĉ private Ġinline Ġfun Ġ< re ified ĠReturn Value > Ġparse Value As Type ( source : ĠJson Reader , Ġwith Termination : ĠBoolean ): ĠReturn Value Ġ{ Ċĉ ĉ val Ġvalue Ġ= Ġparse Value OrNull ( source , Ġwith Termination Ġ= Ġwith Termination ) Ċĉ ĉ return Ġvalue Ġas ? ĠReturn Value Ċĉĉ ĉ ?: Ġthrow ĠJson Exception . Schema ( Ċĉĉĉ ĉ message Ġ= Ġ" Cannot Ġparse Ġ${ ReturnValue :: class }, Ġgot Ġ" Ġ+ Ġvalue ?. let Ġ{ Ġ"${ value :: class }: Ġ$ value " Ġ}, Ċĉĉĉ ĉ offset Ġ= Ġsource . offset , Ċĉĉĉ ĉ path Ġ= Ġsource . path Ċĉĉ ĉ ) Ċ ĉ } ĊĊĊ ĉ public Ġfun Ġparse Value OrNull ( source : ĠJson Reader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠAny ? ĊĊĊ ĉ public Ġcompanion Ġobject Ġ{ ĊĊĉ ĉ public Ġval Ġdefault : ĠJson Parser Ġget () Ġ= ĠStandard Parser Ċ ĉ } Ċ } ĊĊ Ċ public Ġfun ĠJson Parser . parse List ( source : ĠReader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠList < *> Ġ= Ċ ĉ parse List ( Json Reader . build ( source ), Ġwith Termination Ġ= Ġwith Termination ) ĊĊ Ċ public Ġfun ĠJson Parser . parse List ( source : ĠString ): ĠList < *> Ġ= Ċ ĉ parse List ( Json Reader . build ( source )) ĊĊ Ċ public Ġfun ĠJson Parser . parse Map ( source : ĠReader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠMap < String , Ġ*> Ġ= Ċ ĉ parse Map ( Json Reader . build ( source ), Ġwith Termination Ġ= Ġwith Termination ) ĊĊ Ċ public Ġfun ĠJson Parser . parse Map ( source : ĠString ): ĠMap < String , Ġ*> Ġ= Ċ ĉ parse Map ( Json Reader . build ( source )) ĊĊ Ċ public Ġfun ĠJson Parser . parse Value ( source : ĠJson Reader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠAny Ġ= Ċ ĉ parse Value OrNull ( source , Ġwith Termination Ġ= Ġwith Termination ) Ġ?: Ġthrow ĠJson Exception . Schema (" Unexpected Ġnull Ġvalue Ġat Ġtop - level ") ĊĊ Ċ public Ġfun ĠJson Parser . parse Value ( source : ĠReader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠAny Ġ= Ċ ĉ parse Value ( Json Reader . build ( source ), Ġwith Termination Ġ= Ġwith Termination ) ĊĊ Ċ public Ġfun ĠJson Parser . parse Value ( source : ĠString ): ĠAny Ġ= Ċ ĉ parse Value ( Json Reader . build ( source )) ĊĊ Ċ public Ġfun ĠJson Parser . parse Value OrNull ( source : ĠReader , Ġwith Termination : ĠBoolean Ġ= Ġtrue ): ĠAny ? Ġ= Ċ ĉ parse Value OrNull ( Json Reader . build ( source ), Ġwith Termination Ġ= Ġwith Termination ) ĊĊ Ċ public Ġfun ĠJson Parser . parse Value OrNull ( source : ĠString ): ĠAny ? Ġ= Ċ ĉ parse Value OrNull ( Json Reader . build ( source )) Ċ