powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг JSON
1 сообщений из 26, страница 2 из 2
Период между сообщениями больше года.
Парсинг JSON
    #40044911
fumitox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если возникнет ситуация когда, казалось бы, одни и те же данные, OPENJSON обрабатывает по разному, может решить проблему
Код: sql
1.
replace(replace(@json,char(13),''),char(10),'')



Перенос строки ломает OPENJSON.
Понять что именно ломает сложно, т.к. при копировании в валидаторы из MSSMS перенос строки не копируется (возможно в настройках что-то стоит/не стоит), и код успешно проходит проверку.

Например: Есть временная таблица с данными формата [{"f1": "test"},{"f2": "123"}], нужно через OPENJSON перевести их в таблицу.
OPENJSON выдает ошибку, все валидаторы проверяют без ошибок. В ручную, все нормально, а как надо не работает...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @json NVARCHAR(MAX);
--Вариант 1
set @json = 'копипаст' --выполняем команду "select json_data from ##table" и руками копируем содержимое сюда
select * FROM OPENJSON(@json) -- Все нормально

--Вариант 2
select @json = json_data from ##table -- присваиваем переменную
select * FROM OPENJSON(@json) -- Ошибка: Текст JSON имеет неправильный формат. В позиции * найден непредвиденный символ ".

--Решение
select @json = replace(replace(json_data ,char(13),''),char(10),'') from ##table -- присваиваем переменную
select * FROM OPENJSON(@json) 



Как то так)
...
Рейтинг: 0 / 0
1 сообщений из 26, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Парсинг JSON
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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