2016-09-24 52 views
0

我正在使用json作爲Postgres數據庫中的數據類型,並且在嘗試從json文檔中提取值時出現問題。我身邊做了一些研究和嘗試了多種解決方案,包括使用在Postgres中從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" 
}] 

回答

0

只是想通了。我錯誤地使用了json_array_elements函數。

在任何人碰到這個失蹄,這裏的事件是查詢JSON

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

基本上你第一次訪問該文件,然後抓住你從它需要的正確的方法。我認爲這必須以這種方式完成,因爲列中的數據是'[''。

感謝任何人,擴大我的解釋。