Tôi đang sử dụng Data.Aeson để phân tích cú pháp một số JSON thành một loại Bản ghi. Bất cứ lúc nào dữ liệu được thêm vào JSON và điều này phá vỡ mã của tôi như Aeson phàn nàn cái gì đó để tác động của:Phân tích cú pháp JSON dung sai lỗi
dự kiến đối tượng với 21 cặp tên/giá trị nhưng có 23 tên/giá trị
Tôi thực sự muốn phân tích cú pháp JSON theo cách chịu lỗi - Tôi không quan tâm nếu có thêm nhiều trường vào JSON vào một ngày sau đó, chỉ cần phân tích cú pháp bất cứ điều gì bạn có thể! Có cách nào để đạt được khả năng chịu lỗi này không? Đây là mã của tôi:
myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
_ -> Nothing
Tôi nên thêm rằng tôi đang sử dụng deriveJSON từ Data.Aeson.TH để tạo mã phân tích cú pháp. Nếu tôi viết mã FromJSON theo cách thủ công thì nó có khả năng chịu lỗi nhưng tôi không muốn làm điều đó ...