Estoy usando Data.Aeson para analizar algunos JSON en un tipo de registro. De vez en cuando se añaden datos a la JSON y esto rompe el código como Aesón se queja de algo en el sentido de:Análisis JSON tolerante a errores
espera de objetos con 21 pares nombre/valor, pero tiene 23 nombre/valor
Realmente preferiría analizar el JSON de una manera tolerante a fallas: no me importa si se agregan más campos al JSON en una fecha posterior, ¡simplemente analice todo lo que pueda! ¿Hay alguna forma de lograr esta tolerancia a fallas? Aquí está mi código:
myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
_ -> Nothing
debo añadir que estoy usando deriveJSON de Data.Aeson.TH para generar el código de análisis. Si escribo el código FromJSON manualmente, es tolerante a errores pero me gustaría no tener que hacer eso ...