package Ġio . fluid sonic . json Ċ Ċ import Ġjava . time .* ĊĊ Ċ public Ġobject ĠOffset Time Json Codec Ġ: ĠAbstract Json Codec < Offset Time , ĠJson Coding Context >() Ġ{ ĊĊ ĉ override Ġfun ĠJson Decoder < Json Coding Context >. decode ( valueType : ĠJson Coding Type < Offset Time >): ĠOffset Time Ġ= Ċĉ ĉ readString (). let Ġ{ Ġraw Ġ-> Ċĉĉ ĉ try Ġ{ Ċĉĉĉ ĉ Offset Time . parse ( raw ) !! Ċĉĉ ĉ } Ċĉĉ ĉ catch Ġ( e : ĠDateTime Exception ) Ġ{ Ċĉĉĉ ĉ invalid ValueError (" time Ġand Ġtime Ġzone Ġin ĠISO - 8 6 0 1 Ġformat Ġexpected , Ġgot Ġ'$ raw '") Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĊ ĉ override Ġfun ĠJson Encoder < Json Coding Context >. encode ( value : ĠOffset Time ): ĠUnit Ġ= Ċĉ ĉ writeString ( value . toString ()) Ċ } Ċ