これは問題をうまく説明しています:
列bがテキストではなく配列である場合、次のように機能します。
select *
from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}')
as x(a int, b text, d text);
a | b | d
---+--------------------+---
1 | ["hello", "There"] |
しかし、b
列を配列として定義すると、次のエラーが発生します。
select *
from json_to_record('{"a":1,"b":["hello", "There"],"c":"bar"}')
as x(a int, b text[], d text)
ERROR: malformed array literal: "["hello", "There"]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
JSON配列をターゲット列タイプのPostgres配列に変換するようにどのように説得/強制json_to_record
(またはjson_populate_record
)できますか?