2016-09-24 8 views
0

jsonをPostgres DBのデータ型として使用しているデータベースで作業しており、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機能を誤って使用していました。誰もがこの全体につまずくた場合には

、ここ

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

は基本的にあなたが最初のドキュメントにアクセスして、あなたがそこから必要なものを奪っているJSONを照会する正しい方法です。私はこれが列内のデータの周りの[]のためにこのように行われなければならないと思います。

気軽に、誰でも、私の説明を展開してください。

関連する問題