кодесурса
«MySQL

Функции и операторы JSON PostgreSQL

script1adsense2code
script1adsense3code

Вступление

Здесь операторы, которые доступны для использования с данными 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code