简体   繁体   English

无法从Postgres中的JSON列中提取数据

[英]Unable to extract data from JSON column in Postgres

I have a JSON column as shown below. 我有一个JSON列,如下所示。 I am trying to extract values for ID and identifier columns (namely identifier1, identifier2, identifier3 and identifier4) but I am unable to get the data. 我正在尝试提取ID和标识符列(即,标识符1,标识符2,标识符3和标识符4)的值,但是我无法获取数据。 Given below is a sample of the JSON data I am trying to extract from. 下面给出的是我尝试从中提取的JSON数据的示例。

[{"id": 5079, "identifier1": {"key": "ABC", "type": "identifier", "regex": null}, 
"identifier2": {"key": 123, "type": "identifier", "regex": null}, 
"identifier3": {"key": XYZ, "type": "identifier", "regex": null}, 
"identifier4": {"key": ABC, "type": "identifier", "regex": null}}]

Data type of the column is JSONB DB : Postgres ColumnName: jsondata 该列的数据类型为JSONB DB:Postgres ColumnName:jsondata

I tried the below query but that returned a null output 我尝试了以下查询,但返回了空输出

select
    jsondata ->> 'id',
    jsondata -> 'identifier1' ->> 'key'
from Customer;

Could any one help me on how this can be extracted. 任何人都可以帮助我如何提取它。 Thanks 谢谢

I'm not sure if I got your question right, but I guess what you're looking for is something like this: 我不确定我是否正确回答了您的问题,但是我想您正在寻找的是这样的东西:

SELECT 
  json_array_elements(jsondata)->>'id' AS id,
 (json_array_elements(jsondata)->>'identifier1')::json ->> 'key'  AS key1,
 (json_array_elements(jsondata)->>'identifier2')::json ->> 'key'  AS key2,
 (json_array_elements(jsondata)->>'identifier3')::json ->> 'key'  AS key3,
 (json_array_elements(jsondata)->>'identifier4')::json ->> 'key'  AS key4
from Customer;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM