remove null values from json

From: Michael Moore <michaeljmoore(at)gmail(dot)com>
To: postgres list <pgsql-sql(at)postgresql(dot)org>
Subject: remove null values from json
Date: 2016-01-15 20:24:35
Message-ID: CACpWLjMXYaOJ+qDGX4xAduhWTHt0F62K2e2sDazH7tG_m9Qnpg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-sql

This is ALMOST what I want:
select json_strip_nulls ('[{ "f1":1 , "f2":null , "f3":"NULL" , "f4":""
}]');
the result is:
"[{"f1":1,"f3":"NULL","f4":""}]"

As you can see, the "f2" object has been removed. I would *also* like to
remove the f3 and f4 objects.

I realize I won't be able to use the json_strip_nulls function to do this.
I could brute force it by doing "json to array" then looping through the
array and picking only the objects I want, and then using the chosen
objects to build an new JSON document.

I suspect there is a more elegant way to accomplish the same objective.
Ideas?

PS. It would be great to have a json_strip_values (json, array) where array
contains the list of values you want removed.

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Moore 2016-01-15 21:43:52 strip values from json doc
Previous Message John DeSoi 2016-01-14 16:00:49 Re: BYTEA vs BLOB