From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Tim Dudgeon <tdudgeon(dot)ml(at)gmail(dot)com> |
Cc: | "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: generating json without nulls |
Date: | 2015-05-07 16:27:00 |
Message-ID: | CAKFQuwajBFsDgLqjkfbQGKM7tm9i0mUeqhR87pdfk0o027emOQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Thu, May 7, 2015 at 8:29 AM, Tim Dudgeon <tdudgeon(dot)ml(at)gmail(dot)com> wrote:
> That's not going to work. I want the row, I just don't want the values
> that are null.
>
Only thing that comes to mind:
1. Use the conversion function to get the json structure with nulls.
2. Use an explode function to convert the json into a table structure with
(key, value) columns.
3. Filter that table where value is not null.
4. Convert the remaining entries into arrays
5. Pass the two arrays back into the json_object(keys text[], values text[])
You could dynamically build up a literal string array but the syntax
challenges scare me:
json_object('{' ||
CASE WHEN col1 IS NULL THEN '' ELSE '"col1",' || val1 || '"' END ||
CASE WHEN col2 IS NULL THEN '' ELSE '"col2",' || val2 || '"' END ||
'}'::text[])
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Joseph Krogh | 2015-05-07 19:52:03 | Re: generating json without nulls |
Previous Message | Tim Dudgeon | 2015-05-07 15:29:04 | Re: generating json without nulls |