Data.Aesonを使用して、JSONの一部を解析してレコードタイプにしています。随時データをJSONに追加され、アイソーンはの効果に何かを文句を言うので、これは私のコードを壊す:フォールトトレランスのJSON解析
予想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コードを手作業で書くとフォールトトレラントですが、私はそれをする必要はありません。