如何使用 jsonpath 获取 JSON 键值

How to get JSON key value using jsonpath

我是 jsonpath 的新手,想使用 jsonpath.

查询我的 PostgreSQL 数据库中的 JSON 字段

我使用了这个查询,但它不起作用。

SELECT jsonb person '$.years' FROM people

Person 是具有以下值的 JSON 字段:

{
    "years": 2,
    "name": "Josh"
}

我用 the documentation 但它对初学者不友好。

如何使用 jsonpath 从 JSON 中获取特定键的值?我使用 PostgreSQL 13.

是的,在这种情况下文档肯定很难学习。一个问题是区分 jsonpath 语言的结构(描述你 link 到的地方),以及如何在 SQL 语言中使用该语言(非常简洁地描述 here)。您需要名为“jsonb_path_query”的 SQL 语言函数来将 jsonpath 查询应用于 jsonb 对象。

SELECT jsonb_path_query( person::jsonb, '$.years') FROM people;

请注意,仅当“person”尚未定义为数据类型“jsonb”时才需要 ::jsonb。你最好确保它已经是正确的类型,然后你可以省略转换。