PostgreSQL jsonデータからnullを除去する

PostgreSQL jsonデータからnullを除去する

PostgreSQLで、jsonデータからnullを除去する手順を記述してます。「json_strip_nulls」に「jsonデータ」を指定することで可能です。また、nullが除去されるのは「jsonデータ」内にあるもののみとなります。

環境

  • OS CentOS Stream release 9
  • PostgreSQL 15.1
  • pgadmin4 6.16

位置を指定して値を取得

位置を指定して値を取得するには、「json_strip_nulls」を使用します。
※「josnb」型には「jsonb_strip_nulls」を使用します。

json_strip_nulls(jsonデータ);

json_strip_nulls(jsonデータ);

実際に、実行してみます。

SELECT
    json_strip_nulls('{"a": null, "b": {"x": 1, "y": 2}}'),
	  json_strip_nulls('{"a": 1, "b": {"x": null, "y": 2}}');

実行結果をみると、除去されていることが確認できます。

また、削除されるのは「jsonデータ」内にある「null」だけとなります。

SELECT
    json_strip_nulls('[1,null,{"a": null, "b": {"x": 1, "y": null}}]');

実行結果