Функции и операторы JSON PostgreSQL
Вступление
Здесь операторы, которые доступны для использования с данными JSON.
Операторы JSON
оператор | Описание | пример |
---|---|---|
-> | Получить элемент массива JSON Тип операнда: int | '[1,2,3] :: json-> 2 |
-> | Получить поле объекта JSON Тип операнда: текст | { "А": 1, "б": 2} ':: JSON -> 'Ь' |
- >> | Получить элемент массива JSON в виде текста Тип операнда: int | '[1,2,3] :: JSON - >> 2 |
- >> | Получить поле объекта JSON как текст Тип операнда: текст | { "А": 1, "б": 2} ':: JSON - >> 'б' |
#> | Получить объект JSON по указанному пути Тип операнда: массив текста | { "А": [1,2,3], "б": [4,5,6]} ':: # JSON> '{а, 2}' |
# >> | Получить объект JSON по указанному пути в виде текста Тип операнда: массив текста | { "А": [1,2,3], "б": [4,5,6]} ':: # >> JSON '{а, 2}' |
Функции поддержки JSON
функция array_to_json ()
Возвращает массив как JSON. Многомерный массив PostgreSQL становится массивом массивов JSON. Перевод строки будет добавлен между элементами измерения 1, если pretty_bool имеет значение true.
Синтаксис:
array_to_json (anyarray [, pretty_bool])
Тип возврата
JSON
пример
Код:
SELECT array_to_json('{{2,8},{79,111}}'::int[]);
Вот результат.
Пример вывода:
array_to_json ------------------ [[2,8], [79111]] (1 ряд)
Функция row_to_json ()
Возвращает строку в формате JSON. Перевод строки будет добавлен между элементами уровня 1, если pretty_bool имеет значение true.
Синтаксис:
row_to_json (record [, pretty_bool])
Тип возврата
JSON
пример
Код:
SELECT row_to_json(row(1,'test'));
Вот результат.
Пример вывода:
row_to_json ---------------------- { "F1": 1, "F2": "тест"} (1 ряд)
функция to_json ()
Возвращает значение в формате JSON. Если тип данных не является встроенным и выполняется приведение типа к json, функция преобразования будет использоваться для выполнения преобразования. В противном случае для любого значения, отличного от числа, логического или нулевого значения, текстовое представление будет использоваться, экранироваться и заключаться в кавычки, так что это будет допустимый JSON.
Синтаксис: не поддерживается 9.2
to_json (anyelement)
Тип возврата
JSON
пример
Код:
SELECT to_json('Alex said "Sorry."'::text);
Вот результат.
Пример вывода:
to_json ---------------------- "Алекс сказал /"Sorry./" " (1 ряд)
функция json_array_length ()
Возвращает количество элементов в самом внешнем массиве JSON.
json_array_length (JSON)
Тип возврата
ИНТ
пример
Код:
SELECT json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]');
Вот результат. Пример вывода:
json_array_length ---------------------- 5 (1 ряд)
функция json_each ()
Расширяет внешний JSON-объект в набор пар ключ / значение.
json_each (JSON)
Тип возврата
Текст клавиши SETOF, значение json
пример
Код:
SELECT * FROM json_each('{"a":"apple", "b":"biscuit"}');
Вот результат
Пример вывода:
ключ | значение ----- + ------- а | "яблоко" б | "бисквит"
функция json_each_text ()
Расширяет внешний JSON-объект в набор пар ключ / значение. Возвращаемое значение будет иметь тип text.
json_each_text (from_json json)
Тип возврата
Текст клавиши SETOF, значение json
пример
Код:
SELECT * FROM json_each_text('{"a":"apple", "b":"biscuit"}');
Вот результат
Пример вывода:
ключ | значение ----- + ------- а | яблоко б | бисквит
функция json_extract_path ()
Возвращает объект JSON, указанный на bypath_elems.
json_extract_path (from_json json, текст VARIADIC path_elems [])
Тип возврата
JSON
пример
Код:
SELECT json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4');
Вот результат
Пример вывода:
json_extract_path ---------------------- { "F5": 99, "f6": "Foo"}
функция json_extract_path_text ()
Возвращает объект JSON, на который указывает path_elems.
json_extract_path_text (from_json json, текст VARIADIC path_elems [])
Тип возврата
текст
пример
Код:
SELECT json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4', 'f6');
Вот результат
Пример вывода:
json_extract_path_text --------------------------- Foo
функция json_object_keys ()
Возвращает набор ключей в объекте JSON. Будет отображен только «внешний» объект.
json_object_keys (JSON)
Тип возврата
SETOF текст
пример
Код:
SELECT json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}}');
Вот результат
Пример вывода:
json_object_keys ------------------ f1 f2
функция json_populate_record ()
Расширяет объект infrom_json до строки, столбцы которой соответствуют типу записи, определенному базой. Преобразование будет лучшим усилием; столбцы в базе без соответствующего ключа from_json будут оставлены пустыми. Если столбец указан более одного раза, используется последнее значение.
json_populate_record (базовый элемент, from_json json, [, use_json_as_text bool = false]
Тип возврата
anyelement
пример
Код:
SELECT * FROM json_populate_record(null::x, '{"a":1,"b":2}');
Вот результат
Пример вывода:
а | б --- + --- 1 | 2
функция json_populate_recordset ()
Расширяет самый внешний набор объектов infrom_json до набора, столбцы которого соответствуют типу записи, определенному базой. Преобразование будет лучшим усилием; столбцы в базе без соответствующего ключа from_json будут оставлены пустыми. Если столбец указан более одного раза, используется последнее значение.
json_populate_recordset (базовый элемент, from_json json, [, use_json_as_text bool = false]
Тип возврата
СЕТОФ любой элемент
пример
Код:
SELECT * FROMjson_populate_recordset(null::x, '[{"a":1,"b":2},{"a":3,"b":4}]');
Вот результат.
Пример вывода:
а | б --- + --- 1 | 2 3 | 4
функция json_array_elements ()
Расширяет массив JSON до набора элементов JSON.
json_array_elements (JSON)
Тип возврата
SETOF JSON
пример
Код:
SELECT json_array_elements('[1,true, [2,false]]');
Вот результат.
Пример вывода:
значение ----------- 1 правда [2, ложная]
Предыдущая: Геометрические функции и операторы
Далее: Функции диапазона и операторы
Новый контент: Composer: менеджер зависимостей для PHP , R программирования