sto usando Data.Aeson per analizzare alcuni JSON in un tipo di record. Di tanto in tanto i dati viene aggiunto al JSON e questo spezza il codice come Aeson lamenta qualcosa per l'effetto di:Fault tolerant JSON parsing
previsto Oggetto con 21 coppie nome/valore, ma ha ottenuto 23 nome/valore
Preferisco davvero analizzare il JSON in modo tollerante ai guasti - Non mi interessa se più campi vengono aggiunti al JSON in un secondo momento, basta analizzare qualunque cosa tu possa! C'è un modo per raggiungere questa tolleranza ai guasti? Qui è il mio codice:
myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
_ -> Nothing
Vorrei aggiungere che sto usando da deriveJSON Data.Aeson.TH per generare il codice di analisi. Se scrivo manualmente il codice FromJSON è fault tolerant ma non vorrei farlo ...