从给定键的 PostgreSQL JSON 数组中提取所有值

Extract all values from a PostgreSQL JSON array given a key

如何在 postgres

中提取 json
[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]

其中 dsk 值

它return 空值

SELECT '[{"val":"2","dsk:"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json->'dsk'

如前所述,您不能使用您的方法,因为它是一个数组,但您可以使用 json 函数尝试不同的方法:

WITH data
AS (
    SELECT *
    FROM json_array_elements('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]'::json)
    )
SELECT value->'dsk'
FROM data

您可以使用 jsonb_path_query_array 函数并从数组中提取整个值

select jsonb_path_query_array('[{"val":"2","dsk":"one"},{"val":"2","dsk":"two"},{"val":"3","dsk":"three"}]','$[*].dsk')

演示在 DBfiddle