2017-02-16 55 views
0

我在嘗試閱讀PostgreSQL表中的json列時遇到問題。以下是表格說明。Json postgresql 9.4

task=# \d quots           
     Table "public.quots" 
     Column  | Type | Modifiers 
------------------+---------+----------- 
items   | json | 
id    | integer | 
supplier_id  | integer | 

以下是表中的數據。

select items from quots limit 1; 
                items 
----------------------------------------------------------------------------------------------------------------------------------- 
[{"item1":[{"id":5,"name":"Item Name","unitPrice":{"original":10.0,"converted":10.0}}],"item2":{"id":75,"name":"Name"},"id":23653}] 

現在,當我嘗試查詢並獲取item1時,它返回空。

select items->'item1' from quots limit 1; 
?column? 
---------- 

(1 row) 

任何線索?

的PostgreSQL 9.4.4 PSQL 9.4.4

回答

1

JSON的值是一個數組。您可以使用items->0選擇其第一個元素:

select items->0->'item1' from quots limit 1; 

            ?column?         
------------------------------------------------------------------------------ 
[{"id":5,"name":"Item Name","unitPrice":{"original":10.0,"converted":10.0}}] 
(1 row) 
+0

謝謝,它的工作。 upvoted並被標記爲接受。再次感謝您的及時迴應。 – sharafjaffri

+0

當我嘗試使用array_to_json(items-> 0 - >'item1')時,它會返回。錯誤:無法將數組解析爲對象 – sharafjaffri

+0

我無法在沒有看到上下文的情況下幫助您。詢問包含導致錯誤的數據的新問題。 – klin