[eeps] EEP 18 - JSON bifs; object representation

Raimo Niskanen raimo+eeps@REDACTED
Fri Aug 15 10:14:35 CEST 2008


I just want to vote for the tuple of one list
representation for an JSON object.

The in the EEP currently prefered list of tuples
representation has a few backdraws.
1) At the outer level it is a list, which is the
   chosen representation for a JSON sequence,
   so you will have to at least check the 
   first list element to see if it is an object.
2) The empty object becomes [{}] which is an anomaly
   since non-empty objects are lists of 2-tuples.
   This becomes a special case to handle.

The tuple of one list representation does not have
these backdraws.

The EEP argues that the proplists module can handle
the special case [{}] as well as lists of 2-tuples
and that should be an argument for the list of tuples
representation. I think that the tuple of one list
representation is just as easy to use since you
first match on the surrounding tuple and thereby
easily get a list to use the proplists module on:

foo(Json, Key) ->
    case Json of
        {L} -> % JSON object
            proplists:get_value(Key, L);
        L when is_list(L) -> % JSON sequence
            [foo(J) || J <- L];
        _ ->
            other(Json, Key)
    end.
-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the eeps mailing list