Postgresql从Json Object到数组

如何转换此表单的
Postgresql存储的json

{"Kategorie": [{"ID": "environment", "ID": "economy"}]}

得到[“环境”,“经济”]只使用Postgresqls json风格的语法.存储源中的数组有两个元素,但可能包含更多(或只有一个)元素.结果数组应该产生所有值元素.

最佳答案 这可能会给你一些工作:

SELECT ARRAY(select json_extract_path_text(x, 'ID') from
    json_array_elements(
        '{"Kategorie": [{"ID": "environment"}, {"ID": "economy"}]}'::json->'Kategorie') 
    as x)

结果是一个文本数组:

{环境,经济}

完全有可能有一个更清洁的方法来做到这一点:)

JSON operators documentation有详细信息. (这只是9.3,9.2只有很少的实用功能.)

点赞