How to trace back parsing errors with Aeson? [+Answer]
aeson, haskell
Solution
There is a solution : aeson-better-errors is the nice tutorial of the eponymous package by Harry Garrood. This package proved to be both straightforward to use and provide the very information I was looking for.
One remark : this package will not solve structural errors, like a lacking curly bracket. For that kind of errors you still get InvalidJSON messages that are not localized in the input stream.
Problem
I have big (>1Mb), simple JSON files to parse. I used Aeson, following the tutorial of fpcomplete in their School of Haskell (thank you guys, btw). As some files (and not all) fail, I suspect the json file not to respect the structure that I am expecting. The error messages I have gotten until now have been ``` > Failed reading: satisfy ``` My question is : - "How can I get more details on what went wrong ?" Two levels of debugging/logging/trace constitute my goals : - identifying the parser, i.e. which data type could not be parsed (like for Parsec) - identifying the data, with a line / char number