11
我正在使用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代码,它是容错的,但我不想那么做...