我想扩展表中的一个特定行,该行有一个json列,具有以下结构:
id|column1 |
---|-------------|
id1|{nested json}|
id2|{nested json}|
嵌套JSON的结构如下:
{"random_key_1":{"
known_key_1":"value",
"known_key_2":"value"
},
"random_key_2":{"
known_key_1":"value",
"known_key_2":"value"
},
...
我想将单行扩展为以下格式:
my_column_name |known_key_1 |known_key2|
---------------|-----------|----------|
random_key_1 | value | values |
random_key_2 | value | values |
您可以使用内置的json_each方法将最外层的json扩展成行,而不知道键是什么。从那时起,您可以直接构建已知的列。
SELECT col1.key AS my_column_name,
col1.value->>'known_key_1' AS known_key_1,
col1.value->>'known_key_2' AS known_key_2
FROM main_table, json_each(column1) col1;
my_column_name | known_key_1 | known_key_2
----------------+-------------+-------------
random_key_1 | value1 | value2
random_key_2 | value3 | value4