从Postgres中的JSON字段访问数据

时间:2016-09-24 16:01:40

标签: json postgresql

我正在使用一个数据库,该数据库在Postgres数据库中使用json作为数据类型,并且在尝试从json文档中提取值时遇到问题。我已经做了一些研究,并尝试了各种解决方案,包括使用

  • json_array_elements
  • response ->> 'filterEntryId'
  • json_populate_recordset(null::obj, table.column -> 'filterEntryId'

但尚未成功。我开始认为这是json存储在列中的方式,即它以' ['而不是' {'。

以下是json字段值的示例。

 [{
    "filterEntryId":373,
    "length":3,
    "locale":"en",
    "matched":"dog",
    "quality":1.0,
    "root":"dog",
    "severity":"mild",
    "start":2,
    "tags":["Vulgarity"],
    "type":"blacklist"
}]

1 个答案:

答案 0 :(得分:0)

刚想通了。我错误地使用了json_array_elements函数。

如果有人遇到这种情况,这是查询json的正确方法

select
    json_array_elements(column) ->> 'filterEntryId'
from table

基本上,您首先访问该文档,然后从中获取所需内容。我认为这必须以这种方式完成,因为' ['围绕列中的数据。

任何人都可以随意扩展我的解释。