powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не могу распарить json с одинарными кавычками
23 сообщений из 23, страница 1 из 1
не могу распарить json с одинарными кавычками
    #40133431
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, прошу помочь гуру sql в таком вопросе:
нужно распарсить в ms sql json, содержащий одинарные кавычки,
при попытке его распарсить выходит ошибка, предварительное удаление кавычек не помогает.

Что можно придумать, чтобы его распарсить. Скорректировать данные в json возможности нет.
Спасибо.

declare @json nvarchar
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Подразделение\"\r\n}"}}'

select @json


set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))


select @response
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133451
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты предлагаешь нам угадать, где там у тебя одинарные кавычки?

1. Если удаление "одинарные кавычки" спасает - replace.
2. Если удаление "одинарные кавычки" НЕспасает - вы все врете.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133454
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
Ты предлагаешь нам угадать, где там у тебя одинарные кавычки?

1. Если удаление "одинарные кавычки" спасает - replace.
2. Если удаление "одинарные кавычки" НЕспасает - вы все врете.


добавил replace, все равно ошибка, одинарные кавычки выделил жирным

declare @json nvarchar
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ( guid'5ddb 718e-8a67-11ec-b985-0025b51b 0000')/ Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ( guid'5ddb 718e-8a67-11ec-b985-0025b51b0 000')/ ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ( guid'5ddb 718e-8a67-11ec-b985-0025b51 b0000')/ Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b5 1b0000')/ ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(g uid'5ddb7 18e-8a67-11ec-b985-0025b51b 0000')/ Подразделение\"\r\n}"}}'

/*ДОБАВИЛ REPLACE*/set @json= (select replace(@json,char(39),'"'))

select @json


set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))




select @response
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133456
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg
declare @json nvarchar




ferg
одинарные кавычки выделил жирным

"одинарные кавычки" должны быть подвоены

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @json nvarchar(max)
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Подразделение\"\r\n}"}}'

select @json

set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))


select @response



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"Характер

(1 row affected)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"Заказ_Key": "c9e2ebdb-68bd-11ec-b985-0025b51b0000",
"ТипОбеспечения": "Заказ",
"КонфигурационнаяЕдиница_Key": "60e8b0b4-2723-11ea-9135-00505695ff0d",
"ХарактеристикаКЕ_Key": "4b8a7511-551f-11e9-9121-00505695891b,
"Заказчик@navigationLinkUrl": "Docu

(1 row affected)

...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133459
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court
ferg
declare @json nvarchar




ferg
одинарные кавычки выделил жирным

"одинарные кавычки" должны быть подвоены

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @json nvarchar(max)
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Подразделение\"\r\n}"}}'

select @json

set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))


select @response



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"Характер

(1 row affected)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"Заказ_Key": "c9e2ebdb-68bd-11ec-b985-0025b51b0000",
"ТипОбеспечения": "Заказ",
"КонфигурационнаяЕдиница_Key": "60e8b0b4-2723-11ea-9135-00505695ff0d",
"ХарактеристикаКЕ_Key": "4b8a7511-551f-11e9-9121-00505695891b,
"Заказчик@navigationLinkUrl": "Docu

(1 row affected)



да, разумеется, в первой строке должно быть declare @json nvarchar(max) а не declare @json nvarchar
Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. И передалать этот запрос в 1С у меня нет возможности, надо распарсить то что есть.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133460
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg
Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками.
он как "подаётся" ? На бумажке распечатанный и ты его с клавиатуры набираешь ?
Или всё-таки, этот json принимается в какую-то переменную, и её дальше используешь ?

Про "подвоення" - это только для первого случая
Во-втором никакой проблемы быть не должно
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133462
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg

Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. И передалать этот запрос в 1С у меня нет возможности, надо распарсить то что есть.


1. Не верю! (с) Станиславский.
2. Конешно 1С - дерьмо, но вряд ли они json сами писали.
3. Где "цитата" примера json?
4. Опять сказки рассказываете?
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133465
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, у тебя невалидная строка json

Код: sql
1.
"4b8a7511-551f-11e9-9121-00505695891b",



" - нет кавычки двойной
а все одинарные должны быть задвоены ''
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133468
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
ferg

Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. И передалать этот запрос в 1С у меня нет возможности, надо распарсить то что есть.


1. Не верю! (с) Станиславский.
2. Конешно 1С - дерьмо, но вряд ли они json сами писали.
3. Где "цитата" примера json?
4. Опять сказки рассказываете?



мне приходит такой JSON(см ниже).
Попробуйте его распарсить сами.
Одинарные кавычки выделил жирным.
Попробуйте его распарсить сами и поверите, свои попытки я показывал выше.

{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid ' 5ddb718e-8a67-11ec-b985-0025b51b0000 ' )/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Подразделение\"\r\n}"}}
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133470
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он у вас невалидный, это не json!

вот такой у вас должен быть:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @json NVARCHAR(MAX);
set @json = N'{
	"InnerError": "",
	"HttpResponse":
	{
		"StatusCode": 201,
		"ResponseContent": 		
		{
			"Заказ_Key": "c9e2ebdb-68bd-11ec-b985-0025b51b0000",
			"ТипОбеспечения": "Заказ", 
			"КонфигурационнаяЕдиница_Key": "60e8b0b4-2723-11ea-9135-00505695ff0d", 
			"ХарактеристикаКЕ_Key": "4b8a7511-551f-11e9-9121-00505695891b",
			"Заказчик@navigationLinkUrl": "Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Заказчик", 
			"ПодразделениеЗаказчика@navigationLinkUrl": "Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ПодразделениеЗаказчика", 
			"Автор@navigationLinkUrl": "Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Автор", 
			"ФинансовыйГод@navigationLinkUrl": "Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ФинансовыйГод", 
			"Подразделение@navigationLinkUrl": "Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Подразделение" 
		}
	}
}';

select ISJSON(@json)
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133473
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
он невалидный, это не json

https://jsonformatter.curiousconcept.com считает, что он валидный
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133475
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg,

а причём тут это? вам же нужно парсить в MS SQL!
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133477
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
ferg,

а причём тут это? вам же нужно парсить в MS SQL!

я не могу переделать json который получаю из 1с ,
такая структура парсится точно, сейчас вот поблема только с одинарными кавычками и вот вопрос, можно ли такой json распарсить?
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133478
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все одинарные кавычки внутри строки должны быть задвоены.
Просите своих программеров 1С, чтобы они для вас готовили строку в нужном вам формате. Или выгружайте эти строки сначала куда-нибудь и форматируйте их сами правильно.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133493
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант: записывайте приходящие строки в промежуточную таблицу в поле [Json1C] nvarchar(max), потом от туда уже извлекайте и парсите себе на здоровье.

Код: sql
1.
2.
3.
DECLARE @json nvarchar(max);
SET @json = (select [Json1C] from dbo.Test where Id = 1);
SELECT ISJSON(@json) as [is valid json string];
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133501
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg
aleks222
пропущено...


1. Не верю! (с) Станиславский.
2. Конешно 1С - дерьмо, но вряд ли они json сами писали.
3. Где "цитата" примера json?
4. Опять сказки рассказываете?



мне приходит такой JSON(см ниже).
Попробуйте его распарсить сами.
Одинарные кавычки выделил жирным.
Попробуйте его распарсить сами и поверите, свои попытки я показывал выше.

{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid ' 5ddb718e-8a67-11ec-b985-0025b51b0000 ' )/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'5ddb718e-8a67-11ec-b985-0025b51b0000')/Подразделение\"\r\n}"}}


Формально это валидный JSON.
Ну а теперь процитируйте ошибку парсера MS SQL.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133502
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
все одинарные кавычки внутри строки должны быть задвоены.
Просите своих программеров 1С, чтобы они для вас готовили строку в нужном вам формате. Или выгружайте эти строки сначала куда-нибудь и форматируйте их сами правильно.

Зачем пороть чушЪ. Ей больно.

Все в рамках
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/string-escape-transact-sql?view=sql-server-ver15

Одинарные кавычки для JSON НЕ спецсимвол - можно совать куды хошь.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133505
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg
Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками.


Вы совсем необразованы?
Повтор одиночной кавычки = esc-символ. Он нужен только если вы пытаетесь ЯВНО НАПИСАТЬ строковую константу в Т-SQL.

declare @str nvarchar(1024) = N'Строка с одинарной '' кавычкой';

Содержимое @str в этом случае

Код: plaintext
Строка с одинарной ' кавычкой
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133514
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
ferg
Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками.


Вы совсем необразованы?

зачем переходить на личности? я по вам не прокатывался, а мог бы так, что мало бы не показалось.

Вы бы хоть показали как преобразовать этот полученный json, чтобы его можно было распарсить, а не только бы надували бы щеки и писали не верю.

Пожаловался на вас модератору, чтобы сбить с вас спесь.
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133515
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
как вариант: записывайте приходящие строки в промежуточную таблицу в поле [Json1C] nvarchar(max), потом от туда уже извлекайте и парсите себе на здоровье.

Код: sql
1.
2.
3.
DECLARE @json nvarchar(max);
SET @json = (select [Json1C] from dbo.Test where Id = 1);
SELECT ISJSON(@json) as [is valid json string];



Спасибо за участие
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133516
ferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court
ferg
declare @json nvarchar




ferg
одинарные кавычки выделил жирным

"одинарные кавычки" должны быть подвоены

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @json nvarchar(max)
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Подразделение\"\r\n}"}}'

select @json

set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))


select @response



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"Характер

(1 row affected)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"Заказ_Key": "c9e2ebdb-68bd-11ec-b985-0025b51b0000",
"ТипОбеспечения": "Заказ",
"КонфигурационнаяЕдиница_Key": "60e8b0b4-2723-11ea-9135-00505695ff0d",
"ХарактеристикаКЕ_Key": "4b8a7511-551f-11e9-9121-00505695891b,
"Заказчик@navigationLinkUrl": "Docu

(1 row affected)



Отличное решение! Спасибо!
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133575
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg
court
пропущено...




пропущено...

"одинарные кавычки" должны быть подвоены

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @json nvarchar(max)
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid''5ddb718e-8a67-11ec-b985-0025b51b0000'')/Подразделение\"\r\n}"}}'

select @json

set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))


select @response



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"Характер

(1 row affected)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"Заказ_Key": "c9e2ebdb-68bd-11ec-b985-0025b51b0000",
"ТипОбеспечения": "Заказ",
"КонфигурационнаяЕдиница_Key": "60e8b0b4-2723-11ea-9135-00505695ff0d",
"ХарактеристикаКЕ_Key": "4b8a7511-551f-11e9-9121-00505695891b,
"Заказчик@navigationLinkUrl": "Docu

(1 row affected)



Отличное решение! Спасибо!


Интересуюсь, сонечка, в чем тут "решение"?
Вам действительно json на гумажке приносят и вы его врукопашную печатаете в MS SQL?
...
Рейтинг: 0 / 0
не могу распарить json с одинарными кавычками
    #40133653
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferg,

двойные кавычки нужны для того, чтобы SSMS корректно интерпретировала скаляр.
Вы что, парсите в менеджмент студии вручную?
Вот пример, все прекрасно работает с одинарными кавычками. Просмотрите текст переменных внимательно.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @json varchar(max)
declare @response varchar(max)

set @json='{"InnerError":"","HttpResponse":{"StatusCode":201,"ResponseContent":"{\r\n\"Заказ_Key\": \"c9e2ebdb-68bd-11ec-b985-0025b51b0000\",\r\n\"ТипОбеспечения\": \"Заказ\",\r\n\"КонфигурационнаяЕдиница_Key\": \"60e8b0b4-2723-11ea-9135-00505695ff0d\",\r\n\"ХарактеристикаКЕ_Key\": \"4b8a7511-551f-11e9-9121-00505695891b,\r\n\"Заказчик@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'+
	'5ddb718e-8a67-11ec-b985-0025b51b0000'+
	''')/Заказчик\",\r\n\"ПодразделениеЗаказчика@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'''+
	'5ddb718e-8a67-11ec-b985-0025b51b0000'+
	''')/ПодразделениеЗаказчика\",\r\n\"Автор@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'''+
	'5ddb718e-8a67-11ec-b985-0025b51b0000'+''')/Автор\",\r\n\"ФинансовыйГод@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'''+
	'5ddb718e-8a67-11ec-b985-0025b51b0000'+''')/ФинансовыйГод\",\r\n\"Подразделение@navigationLinkUrl\": \"Document_ВнутреннееПотреблениеКонфигурационныхЕдиниц_СМ(guid'''+
	'5ddb718e-8a67-11ec-b985-0025b51b0000'+
	''')/Подразделение\"\r\n}"}}'


select @json

set @response = (SELECT ResponseContent
FROM OPENJSON(@json, N'$.HttpResponse')
WITH (
ResponseContent varchar(max) N'$.ResponseContent'
))
select @response

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


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