powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формирование json
5 сообщений из 5, страница 1 из 1
Формирование json
    #39566126
Term
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем!

Подскажите пожалуйста

Есть табличка вида:

Код: sql
1.
2.
3.
4.
Create table Tab(
c_id int,
c_json varchar(max)
)


в ней данные, предположим такие
с_id - 5
c_json - {"FIO": "Mike", "age": "30"}

если делаю запрос вида

Код: sql
1.
select * from Tab for json auto



то строка c_json получается такого вида {\"FIO\": \"Mike\", \"age\": \"30\"}

как нужно составить запрос чтоб результат получился такого вида:

Код: sql
1.
2.
3.
4.
5.
6.
7.
[{
	"c_id": "5",
	"c_jason": {
		"FIO": "Mike",
		"age": "30"
	}
}]
...
Рейтинг: 0 / 0
Формирование json
    #39566148
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из известных мне способов пока есть такой вариант:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @t TABLE (c_id int, c_json VARCHAR(MAX))
INSERT INTO @t
SELECT 5, '{"FIO": "Mike", "age": "30"}'

SELECT c_id
     , c_json = (
        SELECT FIO = JSON_VALUE(c_json, '$.FIO')
             , age = JSON_VALUE(c_json, '$.age')
        FOR JSON PATH
     )
FROM @t
FOR JSON PATH


либо извраты с REPLACE:

Код: sql
1.
2.
3.
4.
5.
6.
7.
DECLARE @t TABLE (c_id int, c_json VARCHAR(MAX))
INSERT INTO @t
VALUES (5, '{"FIO": "Mike", "age": "30"}')
     , (6, '{"FIO": "Dick", "age": "32"}')

SELECT REPLACE((SELECT c_id, c_json = 'xxx' FOR JSON PATH), '"xxx"', c_json)
FROM @t


второй более производительный в некоторых случаях бывает
...
Рейтинг: 0 / 0
Формирование json
    #39566173
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Качаешь dbo.parseJSON вот от сюда: https://www.red-gate.com/simple-talk/sql/t-sql-programming/consuming-json-strings-in-sql-server/

Радуешься тому, что все уже сделали за тебя.
...
Рейтинг: 0 / 0
Формирование json
    #39566178
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, тебе не парсить, а рисовать. Тогда вот эта статья

https://www.red-gate.com/simple-talk/sql/t-sql-programming/producing-json-documents-from-sql-server-queries-via-tsql/
...
Рейтинг: 0 / 0
Формирование json
    #39566306
Term
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю всех за ответы!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формирование json
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]