Fehlertolerantes JSON-Parsen

Ich verwende Data.Aeson, um einige JSON-Dateien in einen Datensatztyp zu zerlegen. Von Zeit zu Zeit werden Daten zum JSON hinzugefügt und dies zerstört meinen Code, da sich Aeson über Folgendes beschwert:

Erwartetes Objekt mit 21 Name / Wert-Paaren, aber 23 Name / Wert

Ich würde es wirklich vorziehen, den JSON-Code fehlertolerant zu analysieren. Es ist mir egal, ob zu einem späteren Zeitpunkt weitere Felder zum JSON-Code hinzugefügt werden. Analysieren Sie einfach, was immer Sie können! Gibt es eine Möglichkeit, diese Fehlertoleranz zu erreichen? Hier ist mein Code:

myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
  Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
  _              -> Nothing

Ich sollte hinzufügen, dass ich deriveJSON von Data.Aeson.TH verwende, um den Parsing-Code zu generieren. Wenn ich den FromJSON-Code manuell schreibe, ist er fehlertolerant, aber das möchte ich nicht tun müssen ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage