Ini menggambarkan masalah dengan baik:
Ketika kolom b adalah tipe teks, dan bukan array, yang berikut berfungsi:
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"] |
Tetapi jika saya mendefinisikan b
kolom sebagai array, saya mendapatkan kesalahan ini:
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.
Bagaimana saya bisa meyakinkan / memaksa json_to_record
(atau json_populate_record
) untuk mengubah array JSON menjadi array Postgres dari tipe kolom target?
sumber