在Postgres有没有办法做到这一点?
SELECT * FROM magic_json_function('[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]')
col1 | col2
------+------
1 | A
2 | B
(2 rows)
编辑,无需创建表格。
答案 0 :(得分:3)
当然,功能是json_populate_recordset。假设有一个由{/ p>定义的表test
CREATE TABLE test(
col1 int,
col2 text
);
你可以简单地说:
SELECT * FROM json_populate_recordset(NULL::test,'[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]')
答案 1 :(得分:2)
这就是我最终做到的方式:
SELECT value->>'col1' AS col1, value->>'col2' AS col2
FROM json_array_elements('[{"col1": 1, "col2": "A"}, {"col1": 2, "col2": "B"}]')
col1 | col2
------+------
1 | A
2 | B
(2 rows)