Postgres使用unkown密钥扩展JSON



我想扩展表中的一个特定行,该行有一个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

最新更新