2016-09-27 176 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。