Re: Delete values from JSON
Hi,
If it is jsonb type, you can have a look at the documentation : https://www.postgresql.org/docs/14/functions-json.html
There are some examples :
jsonb-text→jsonbDeletes a key (and its value) from a JSON object, or matching string value(s) from a JSON array.
'{"a": "b", "c": "d"}'::jsonb - 'a'→{"c": "d"}
'["a", "b", "c", "b"]'::jsonb - 'b'→["a", "c"]
jsonb-text[]→jsonbDeletes all matching keys or array elements from the left operand.
'{"a": "b", "c": "d"}'::jsonb - '{a,c}'::text[]→{}
jsonb-integer→jsonbDeletes the array element with specified index (negative integers count from the end). Throws an error if JSON value is not an array.
'["a", "b"]'::jsonb - 1→["a"]
jsonb#-text[]→jsonbDeletes the field or array element at the specified path, where path elements can be either field keys or array indexes.
'["a", {"b":1}]'::jsonb #- '{1,b}'→["a", {}]Regards
I have looked at the docs, but it doesn't, AFAIU, show how to conditionally delete a key based on its value, and leave other keys in the JSONB not matching the value alone.
I want to delete all keys in the (pseudo) path details.keyInformation[*].dunsNumber if the value is "NaN".