相关疑难解决方法(0)

容错JSON解析

我正在使用Data.Aeson将一些JSON解析为Record类型.有时会将数据添加到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
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,我正在使用Data.Aeson.TH中的deriveJSON来生成解析代码.如果我手动编写FromJSON代码,它是容错的,但我不想这样做......

json haskell aeson

11
推荐指数
1
解决办法
948
查看次数

标签 统计

aeson ×1

haskell ×1

json ×1