Re: Duplicate JSON Object Keys - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Duplicate JSON Object Keys
Date
Msg-id 5138F2B2.4000603@dunslane.net
Whole thread Raw
In response to Duplicate JSON Object Keys  ("David E. Wheeler" <david@justatheory.com>)
List pgsql-hackers
On 03/07/2013 02:48 PM, David E. Wheeler wrote:
> This behavior surprised me a bit:
>
>      david=# select '{"foo": 1, "foo": 2}'::json;
>               json
>      ----------------------
>       {"foo": 1, "foo": 2}
>
> I had expected something more like this:
>
>      david=# select '{"foo": 1, "foo": 2}'::json;
>          json
>      ------------
>       {"foo": 2}
>
> This hasn’t been much of an issue before, but with Andrew’s JSON enhancements going in, it will start to cause
problems:
>
>      david=# select json_get('{"foo": 1, "foo": 2}', 'foo');
>      ERROR:  field name is not unique in json object
>
> Andrew tells me that the spec requires this. I think that’s fine, but I would rather that it never got to there.

Specifically, rfc4627 says (note last sentence):
   2.2.  Objects
       An object structure is represented as a pair of curly brackets       surrounding zero or more name/value pairs
(ormembers).  A name is a       string.  A single colon comes after each name, separating the name       from the
value. A single comma separates a value from a following       name.  The names within an object SHOULD be unique. 



cheers

andrew



pgsql-hackers by date:

Previous
From: Kevin Grittner
Date:
Subject: Re: REFRESH MATERIALIZED VIEW locklevel
Next
From: Jeff Davis
Date:
Subject: Re: Enabling Checksums