Recommended way to decode a JSON

Hi :wave:

what is the recommended way to decode a JSON in ReScript?
Do I have to use a library like bs-json or decco or is there a way to do it in pure ReScript?

I also found this (, but it seems to be a bit unsafe because there is no validation of the structure. I could be wrong on this though.

Thank you! :slightly_smiling_face:

1 Like

As far as I know those two libraries are the best way to do it if you care about validation.

If you donโ€™t care about validation of course you can use the method in that link you shared, or do lots of naughty things with Obj.magic (which of course can be very dangerous from a code correctness point of view!).

I personally use decco, because it is so extremely easy to setup (just add [@decco] [@decco.decode] or [@decco.encode] above the type you want to decode to depending on your use).
[Iโ€™ve heard that decco can sometimes add extra code and be more heavy than bs-json, and since it is a ppx can slightly slow down your compile - just to list some of itโ€™s downsides.]

There was a recent interesting discussion about this: Using Variants with data from a JSON http request


If youโ€™re avoiding external dependencies, I wrote a generalized parsing library that would be easy to drop in if you want and applied it one of my hobby projects. Iโ€™m not good at this yet by any means, but I did attempt to explain my thinking.