Задача - сгенерировать некий JSON объект с вложенной структурой, например для передачи в API методы. Простой путь - это руками создать весь объект через конкатенацию строк, например: set @s = { name : +@name+ } У этог...

Формирование сложного JSON объекта через SELECT в SQL Server

Время чтения - менее одной минутыДата публикации 23.08.2025

Задача - сгенерировать некий JSON объект с вложенной структурой, например  для передачи в API методы. 

Простой путь - это руками создать весь объект через конкатенацию строк, например: 

set @s = '{
"name": "'+@name+'"
}'

У этого подхода 2 минуса: 

  • легко сломать формат
  • спецсимволы в переменных могут быть неверно интерпретированы (например, кавычка). 

Более надежный вариант - использовать средства SQL для этого.

К примеру необходимо сделать такой JSON: 

{
  "model": "GigaChat",
  "messages": [
    {
      "role": "user",
      "content": "Скинь мне фото звездного неба, но вместо звезд там будут цифры"
    }
  ],
  "stream": false,
  "repetition_penalty": 1
}     

Как можно с помощью SELECT сделать такой объект: 

select 'GigaChat' model,
	cast(0 as bit) stream, 
	1 repetition_penalty,
       'user' 'messages.role',
        'some text' 'messages.content' 
for JSON PATH,WITHOUT_ARRAY_WRAPPER

Примечание: 

  • WITHOUT_ARRAY_WRAPPER - нужен для того, чтобы вместо массива из одного объекта оставить только сам объект (т.е. убрать []). 

Подобным образом можно генерировать сколь угодно сложный JSON, а также получать данные из таблиц БД, причем безопасным способом (кавычки будут экранированы): 

ВАЖНО! Лучше не использовать вложенные с JSON PATH с примененим WITHOUT_ARRAY_WRAPPER, т.к. параметр WITHOUT_ARRAY_WRAPPER будет экранировать у вложенного объекта кавычки (и объект получится невалидный). 

Насколько полезной была статья?

Что еще посмотреть по SQL Server

Ищем партнеров-разработчиков на T-SQL и PL/pgSQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML

Falcon Space - платформа для создания сайтов с личными кабинетами

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK