2016-09-27 172 views
0

我在我的postgres數據庫中有這個JSON(B)列。我在這個列中拋出了從API獲得的所有數據。現在我需要從這個數組中提取一些鍵/值對。一個JSON數組,如:從JSON數組中提取鍵/值對

[{"myKey1": "school type", "myKey2": "primary"}, {"myKey1": "study coverage", "myKey2": "secondary"}] 

我需要提取:

myKey1: school type myKey2: primary 

myKey1: study coverage myKey22: secondary 

由於我是新來的JSON,對我來說,這似乎是我首先需要打破數組對象(用大包圍括號),並且有一些對象的postgres函數(在下面的鏈接https://www.postgresql.org/docs/9.4/static/functions-json.html中給出),我可以用它來提取所需的鍵/值對。

我的數據庫表:

CREATE TABLE "Education" (
    "id" SERIAL NOT NULL, 
    "json_text" JSONB NOT NULL, 
); 

我使用下面的查詢來實現這一目標:

SELECT tmp_col->>'myKey1' 
FROM ( 
    SELECT json_text->> 0 AS temp_col 
    FROM education 
) AS temp_table 

我收到以下錯誤,當我運行此查詢。

Error Message

任何線索,缺什麼?

還有什麼更好的方法來獲取需要的信息。我正在使用Java語言來顯示信息。

謝謝。

回答

2

如果可以的話,請嘗試在java中處理JSON。您可以從postgres查詢完整的JSON,然後使用JSON API for Java,然後解析您的JSON。