Skip to the content.

Начало

Функция JSON

Функция JSON выполняет преобразование объектных типов object и array в формат JSON туда и обратно.

Таблица перегруженных вариантов функции

Сигнатура Параметр Возврат
JSON(array) -> json array string
JSON(object) -> json object string
JSON(json) -> array string array
JSON(json) -> object string object

Пример использования функции

DECLARE @object object
DECLARE @json   string = '{
  "Булево": true,
  "Целое": 1234,
  "Десятичное": 12.34,
  "ДатаВремя": "2024-01-01T12:34:56",
  "Строка": "это строка текста",
  "Идентификатор": "08ec109d-a06b-a1b1-11ee-ca472bff0a0d"
}'

-- *********************************
-- * Преобразование json -> object *
-- *********************************
SET @object = JSON(@json)

DECLARE @count number = 0
DECLARE @index number = 0
-- NOTE: Определяем схему переменной @property типа object !!!
DECLARE @property object = SELECT Name = '', Type = '', Value = NULL

SET @count = PROPERTY_COUNT(@object)

WHILE @index < @count

   SET @property = GET_PROPERTY(@object, @index)

   IF PROPERTY_EXISTS(@object, @property.Name) THEN
      PRINT '[' + @property.Name + '] (' + @property.Type + ') {' + @property.Value + '}'
   END

   SET @index = @index + 1 -- take next property
END

-- *********************************
-- * Преобразование object -> json *
-- *********************************
PRINT JSON(@object)

-- Результат работы скрипта
[2024-10-04 16:38:44] [Булево] (boolean) {true}
[2024-10-04 16:38:44] [Целое] (number) {1234}
[2024-10-04 16:38:44] [Десятичное] (number) {12.34}
[2024-10-04 16:38:44] [ДатаВремя] (datetime) {2024-01-01 12:34:56}
[2024-10-04 16:38:44] [Строка] (string) {это строка текста}
[2024-10-04 16:38:44] [Идентификатор] (uuid) {08ec109d-a06b-a1b1-11ee-ca472bff0a0d}
[2024-10-04 16:38:44] {"Булево":true,"Целое":1234,"Десятичное":12.34,"ДатаВремя":"2024-01-01T12:34:56","Строка":"это строка текста","Идентификатор":"08ec109d-a06b-a1b1-11ee-ca472bff0a0d"}

Наверх