Postgresql 从 Json 对象到数组

Joh*_*Doe 5 postgresql json

如何转换这种形式的 Postgresql 存储的 json

{"Kategorie": [{"ID": "environment", "ID": "economy"}]}
Run Code Online (Sandbox Code Playgroud)

仅使用 Postgresqls json 风格的语法来获取 ["environment", "economy"]。存储源中的数组在这里有两个元素,但可能包含更多(或仅一个)。结果数组应该产生所有值元素。

Dmi*_*ing 4

这可能会给你一些可以使用的东西:

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

结果是一个文本数组:

{environment,economy}

完全有可能有一种更干净的方法来做到这一点:)

JSON 运算符文档包含详细信息。(这仅限于 9.3+,9.2 的实用函数非常少。)