Работа с JSON в PL/SQL (пакет APEX_JSON)

минута на чтение

Наряду с другими технологиями (например, XML) при коммуникации клиента с сервером применяется нотация объектов JavaScript (JSON). На сервере данные, закодированные в JavaScript-объекте, перед обработкой нужно разкодировать. О том, как это сделать в PL/SQL и пойдёт речь в этом посту.

В моём примере переменная var_json содержит строку, в которой закодирован JSON-объект с тремя атрибутами — число, строка и массив из строк.

var_json varchar2(1000) := '{ 
    "attribute1": 1, 
    "attribute2" : "string", 
    "attribute3": ["member1", "member2"] 
}';
var_count NUMBER;

Для начала эту строку надо спарсить процедурой parse.

apex_json.parse(var_json);

После этого число и строку можно выдёргивать функциями get_number и get_varchar2.

dbms_output.put_line('attribute1 is ' || apex_json.get_number(p_path => 'attribute1'));
dbms_output.put_line('attribute2 is ' || apex_json.get_varchar2(p_path => 'attribute2'));

Для определения длины массива (из скольки элементов состоит массив) существует функция get_count. Переменная var_count в этом случае типа number.

var_count := apex_json.get_count(p_path => 'attribute3');
dbms_output.put_line('var_count is ' || var_count);

Элементы массива можно выбрать по их индексу. Выводить элементы массива можно например в цикле (читайте также пост про циклы FOR и WHILE в PL/SQL).

dbms_output.put_line('attribute3[1] is ' || apex_json.get_varchar2(p_path => 'attribute3[1]'));
dbms_output.put_line('attribute3[2] is ' || apex_json.get_varchar2(p_path => 'attribute3[2]'));

Кому этот пост показался недостаточно развёрнутым, пускай курит официальную документацию пакета APEX_JSON и более подробное руководство (и то, и другое на английском).

Понравился пост? Поделись в соцсетях и подписывайся на аккаунты в Twitter и Facebook!
Facebook Vk Ok LinkedIn Telegram Whatsapp

Похожие записи:

Как я писал в прошлом посте (Различия между T-SQL и PL/SQL), в прошлом семестре я проходил курс по хранилищам данных. Изначально я собирался написать больше постов, но времени не было. В черновике уже долгое время лежит несколько постов, но когда я их доделаю и опубликую — не знаю. ...
Прошлым летом я допинал бакалавра в Бизнес-информатике и в октябре начал магистратуру. На работе я использую систему управления базами данных от Oracle, на курсе Data Warehouse (хранилище данных) сейчас я работаю с SQL Server. В этом посту я опишу несколько разлиичий между оракловским PL/SQ...
В этой статье мы рассмотрим тему — работа с комментариями. Приветствую вас, уважаемые друзья. Мы с вами уже рассмотрели: как надо писать статьи, как вставить видео в статью, как вставить картинки в статью и еще многое другое. Для чего нужна работа с комментариями. Когда ...