[erlang-questions] JSON Parser

Garret Smith garret.smith@REDACTED
Wed Jul 15 23:41:19 CEST 2015


I've had a similar need, to map JSON to Erlang records.  As Bob said,
this should be a layer above the JSON parsing.

aeon is a library that does this (JSON -> erlang terms -> erlang
records) by making the record type information available at runtime
with a parse transform, then using it to direct the translation from
Erlang terms (as produced by jsx) to an Erlang record.

It's light on documentation.  If you think records are the way to go
vs maps (I like that I can ensure fields are present and rely on their
type) I'd be happy to add some examples.

aeon - https://github.com/garret-smith/aeon.git

-Garret

On Wed, Jul 15, 2015 at 11:28 AM, Kannan <vasdeveloper@REDACTED> wrote:
> I was out of Erlang programing for the last five years, I think maps has
> been introduced during that time. I was not aware of it earlier. Just went
> through the documentation, and yes it is the best format to match JSONs.
>
> The syntax is quite complicated though. Using two characters to map key and
> value, assignment, update, access and matching have different K-V separator
> symbols etc. However, as a declaration free K-V grouping structure, it is
> the best option.
>
> Regards,
> Theepan
>
> On Wed, Jul 15, 2015 at 11:33 PM, Garry Hodgson <garry@REDACTED>
> wrote:
>>
>> I prefer mapping json objects to erlang maps, lists to lists, and strings
>> to binaries. i use a wrapper around mochijson to do that.
>>
>>
>> On 7/15/15 2:00 PM, Kannan wrote:
>>
>> Is any of them supporting Erlang 'record' as their base for
>> encoding/decoding. I see many of them are doing it with just list of tuples
>> of binaries.Erlang records best match the structure of JSON format.
>>
>> JSON
>> ----------
>> {"name": "Theepan",
>>   "work": "Coding",
>>   "salary": "0"
>> }
>>
>> Matching Erlang record
>> -----------------------------------
>> -record( json_record,
>> {
>>   'name' = "Theepan",
>>   'work' = "Coding",
>>   'salary' = "0"
>> }
>> }
>>
>> Thanks,
>> Theepan
>>
>> On Wed, Jul 15, 2015 at 2:33 PM, Jesper Louis Andersen
>> <jesper.louis.andersen@REDACTED> wrote:
>>>
>>>
>>> On Tue, Jul 14, 2015 at 10:06 PM, Kannan <vasdeveloper@REDACTED> wrote:
>>>>
>>>> I come across many JSON libraries. Once from MochiWeb, Other one from
>>>> Yaws. Third one from CouchDB. And some others through Googling.
>>>
>>>
>>> There are two very popular JSON parsers in Erlang: jsx and jiffy.
>>>
>>> jsx is written in plain Erlang. It is fast, correct and since it is
>>> written in Erlang, it will also automatically yield for other processes in
>>> the system.
>>>
>>> jiffy is written as a C NIF. It is about 10 times faster than jsx, but
>>> the caveat is everything that has to do with C NIFs: blocking a scheduler, C
>>> code having errors, security considerations, etc.
>>>
>>> I tend to run with `jsx` in my projects, and then I switch away from JSON
>>> when it gets to slow. JSON is a bad format that should never have existed in
>>> the first place. We are stuck with it because it's historic alternative,
>>> XML, was far worse in every aspect.
>>>
>>>
>>> --
>>> J.
>>
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list