[Haskell-cafe] [ANN]json-autotype: Tool generating JSON parsers and type declarations from example documents...
Roman Cheplyaka
roma at ro-che.info
Mon Nov 3 21:35:44 UTC 2014
Hi Michal,
Sounds interesting. Can you show (and include in the README) some
examples of recognized json inputs and code generated for them?
On 03/11/14 18:59, Michal J Gajda wrote:
> Dear Fellow Haskellers,
>
> I've just published a beta version of a tool facilitating generation of
> Haskell type declarations from example JSON documents. It is supposed to
> simplify implementing large JSON-based interfaces, without necessity of
> writing any boilerplate code.
>
> USAGE:
> ======
> After installing with `cabal install json-autotype`, you might generate
> stub code for the parser:
>
> $ json-autotype input.json -o MyFormat.hs
>
> Then you might test the parser by running it on an input file:
>
> $ runghc MyFormat.hs input.json
>
> If everything is correct, then feel free to inspect the data structure
> generated automatically for you!
> The goal of this program is to make it easy for users of big JSON APIs to
> generate entries from
> example data.
>
> Occasionally you might find a valid JSON for which `json-autotype` doesn't
> generate a correct parser.
> You may either edit the resulting file _and_ send it to the author as a
> test case for future release.
>
> HOW IT WORKS:
> ==============
> The program uses union type unification to trim output declarations. The
> types of same attribute tag and similar attribute set, are automatically
> unified using recognition by attribute set matching. (This option can be
> optionally turned off, or a set of unified types may be given explicitly.)
> Either alternatives is used to assure that all JSON inputs seen in example
> input file are handled correctly.
>
> Details on official releases are on Hackage [1]
>
> 1. https://hackage.haskell.org/package/json-autotype
>
> Patches and suggestions are most welcome.
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list