Điều này minh họa vấn đề độc đáo:
Khi cột b có kiểu văn bản và không phải là một mảng, các công việc sau:
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"] |
Nhưng nếu tôi xác định b
cột là một mảng, tôi sẽ gặp lỗi này:
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.
Làm cách nào tôi có thể thuyết phục / ép buộc json_to_record
(hoặc json_populate_record
) chuyển đổi một mảng JSON thành mảng Postgres của loại cột mục tiêu?