[erlang-questions] fast JSON parser in C

Richard A. O'Keefe <>
Fri Jul 25 06:42:32 CEST 2008


On 25 Jul 2008, at 4:20 pm, Chris Anderson wrote:
> http://mail-archives.apache.org/mod_mbox/incubator-couchdb-dev/200807.mbox/%3ce282921e0807200924k256685f6r4b5651219f16d7b5@mail.gmail.com%3e

OK, the biggest question I see there is what to do about "objects".
It seemed intuitively obvious to me (is there a common abbreviation for
this (:-)?) that it would be really nice if a JSON "object" had an
Erlang representation that an Erlang programmer would normally use
for that kind of stuff.  So I expect
	{"foo":1, "bar":2}
to become
	[{foo,1},{bar,2}]
-- though there is a "security" option in the EEP to force
	[{<<"foo">>,1},{<<"bar">>,2}]
and the only major question in my mind was whether it should be sorted,
so that you can give one to orddict.

I see Joe recommends using a tuple, which has several merits:
  - all "objects" turn into the same kind of Erlang term
    (my proposal turns "{}" into {} but other objects into lists)
  - the brackets are the same in JSON and Erlang, always
  - I have to leave in a few minutes, you can think of others
It also has some downsides:
  - you can't pass it to orddict, but then, it would not be beyond
    human power to write an ordtuple module to do orddict-ish
    things
  - it's hard to process in other ways, although my EEP about
    allowing [Expr || Pattern {<-} Tuple] would make it _look_ easier.
  - it's just not what Erlang programmers normally use.
  - others I'm sure you can think of.

An interesting design problem.

--
If stupidity were a crime, who'd 'scape hanging?










More information about the erlang-questions mailing list