package Ġcom . github . fluid sonic . fluid . json Ċ Ċ import Ġjava . time . DateTime Exception Ċ import Ġjava . time . Year Month ĊĊ Ċ object ĠYear Month JSON Codec Ġ: ĠAbstract JSON Codec < Year Month , ĠJSON Coder Context >() Ġ{ ĊĊ ĉ override Ġfun Ġdecode ( valueType : ĠJSON Cod able Type < in ĠYear Month >, Ġdecoder : ĠJSON Decoder < JSON Coder Context >) Ġ= Ċĉ ĉ decoder . readString (). let Ġ{ Ġraw Ġ-> Ċĉĉ ĉ try Ġ{ Ċĉĉĉ ĉ Year Month . parse ( raw ) !! Ċĉĉ ĉ } Ċĉĉ ĉ catch Ġ( e : ĠDateTime Exception ) Ġ{ Ċĉĉĉ ĉ throw ĠJSON Exception (" Cannot Ġparse ĠYear Month Ġvalue : Ġ$ raw ") Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĊ ĉ override Ġfun Ġencode ( value : ĠYear Month , Ġencoder : ĠJSON Encoder < JSON Coder Context >) Ġ= Ċĉ ĉ encoder . writeString ( value . toString ()) Ċ } Ċ