Data.Aesonを使用して、JSONをレコードタイプに解析しています。時々データがJSONに追加され、Aesonが次のような影響について不平を言うので、これは私のコードを壊します。
21個の名前/値ペアを持つオブジェクトが必要ですが、23個の名前/値を取得しました
フォールトトレラントな方法でJSONを解析したいのですが、後日JSONにフィールドが追加されてもかまいません。できる限り解析してください!このフォールトトレランスを実現する方法はありますか?これが私のコードです:
myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
_ -> Nothing
Data.Aeson.THのderiveJSONを使用して解析コードを生成していることを追加する必要があります。FromJSONコードを手動で記述した場合、フォールトトレラントですが、それを行う必要はありません...