2016-09-27 5 views
0

У меня есть столбец JSON (B) в моей базе данных postgres. Я выбрал в этом столбце все данные, которые я получаю от 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

Если вы затем можете попробовать обработать JSON в java. Вы можете запросить полный JSON из postgres, а затем, используя JSON API для Java, вы можете проанализировать свой JSON.

Смежные вопросы