[Haskell-cafe] JSON parser that returns the rest of the string that was not used

Sanae uguu at installgentoo.com
Sun May 29 17:23:35 UTC 2016


You could drop down to the attoparsec layer, but instead of messing
with IResults, use it to make another parser that will parse all the
objects in the file.
E.g.  json `sepBy` skipSpace :: Parser [Value]
sepBy and skipSpace both taken from Data.Attoparsec.Text
On Sun, 2016-05-29 at 13:09 -0400, Ryan Newton wrote:
> As someone who spent many years putting data in S-expression format,
> it seems natural to me to write multiple S-expressions (or JSON
> objects) to a file, and expect a reader to be able to read them back
> one at a time.
> 
> This seems comparatively uncommon in the JSON world.  Accordingly, it
> looks like the most popular JSON parsing lib, Aeson, doesn't directly
> provide this functionality.  Functions like decode just return a
> "Maybe a", not the left-over input, meaning that you would need to
> somehow split up your multi-object file before attempting to parse,
> which is annoying and error prone.
> 
> It looks like maybe you can get Aeson to do what I want by dropping
> down to the attoparsec layer and messing with IResult.
> 
> But is there a better way to do this?  Would this be a good
> convenience routine to add to aeson in a PR?  I.e. would anyone else
> use this?
> 
> Thanks,
>   -Ryan
> 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160529/8640e8d7/attachment.html>


More information about the Haskell-Cafe mailing list