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 (or members). 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
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers