Postgresql从Json Object到数组

时间:2014-01-17 20:46:27

标签: json postgresql

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

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

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

1 个答案:

答案 0 :(得分:2)

这可能会给你一些工作:

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

结果是一个文本数组:

{environment,economy}

完全可能有更简洁的方法来执行此操作:)

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