Re: BUG #15242: JSON functions not recognizing JSON - Mailing list pgsql-bugs

From Andrew Gierth
Subject Re: BUG #15242: JSON functions not recognizing JSON
Date
Msg-id 87a7rwsy9z.fsf@news-spur.riddles.org.uk
Whole thread Raw
In response to BUG #15242: JSON functions not recognizing JSON  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
>>>>> "PG" == PG Bug reporting form <noreply@postgresql.org> writes:

 PG> I get this error: SQL Error [22023]: ERROR: cannot deconstruct an
 PG> array as an object

 PG> when running the statement below because the JSON_EACH function
 PG> doesn't recognize the JSON.

It recognizes the json just fine, and so it can tell that it's an array
rather than the expected object. You were looking for
json_array_elements rather than (or prior to) json_each if you want to
enumerate the objects:

-- to get one row per object:

select json_array_length(txt::json), a.value
  from sample_text, json_array_elements(txt::json) as a;

-- to get one row per object key:

select json_array_length(txt::json), a.value, a.ord, e.key, e.value
  from sample_text,
       json_array_elements(txt::json) with ordinality as a(value,ord),
       json_each(a.value) as e;

-- 
Andrew (irc:RhodiumToad)


pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: row_to_json(), NULL values, and AS
Next
From: Peter Eisentraut
Date:
Subject: Re: BUG #15238: Sequence owner not updated when owning table isforeign