|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Здравствуйте, прошу помочь гуру 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 11:45 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Ты предлагаешь нам угадать, где там у тебя одинарные кавычки? 1. Если удаление "одинарные кавычки" спасает - replace. 2. Если удаление "одинарные кавычки" НЕспасает - вы все врете. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 12:31 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 12:38 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg declare @json nvarchar ferg одинарные кавычки выделил жирным "одинарные кавычки" должны быть подвоены Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 12:52 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
court ferg declare @json nvarchar ferg одинарные кавычки выделил жирным "одинарные кавычки" должны быть подвоены Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
да, разумеется, в первой строке должно быть declare @json nvarchar(max) а не declare @json nvarchar Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. И передалать этот запрос в 1С у меня нет возможности, надо распарсить то что есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 12:58 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. Или всё-таки, этот json принимается в какую-то переменную, и её дальше используешь ? Про "подвоення" - это только для первого случая Во-втором никакой проблемы быть не должно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:04 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. И передалать этот запрос в 1С у меня нет возможности, надо распарсить то что есть. 1. Не верю! (с) Станиславский. 2. Конешно 1С - дерьмо, но вряд ли они json сами писали. 3. Где "цитата" примера json? 4. Опять сказки рассказываете? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:08 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ТС, у тебя невалидная строка json Код: sql 1.
" - нет кавычки двойной а все одинарные должны быть задвоены '' ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:11 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
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}"}} ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:17 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
он у вас невалидный, это не json! вот такой у вас должен быть: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:20 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Konst_One он невалидный, это не json https://jsonformatter.curiousconcept.com считает, что он валидный ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:23 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg, а причём тут это? вам же нужно парсить в MS SQL! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:25 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Konst_One ferg, а причём тут это? вам же нужно парсить в MS SQL! я не могу переделать json который получаю из 1с , такая структура парсится точно, сейчас вот поблема только с одинарными кавычками и вот вопрос, можно ли такой json распарсить? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:29 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
все одинарные кавычки внутри строки должны быть задвоены. Просите своих программеров 1С, чтобы они для вас готовили строку в нужном вам формате. Или выгружайте эти строки сначала куда-нибудь и форматируйте их сами правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:30 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
как вариант: записывайте приходящие строки в промежуточную таблицу в поле [Json1C] nvarchar(max), потом от туда уже извлекайте и парсите себе на здоровье. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:44 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:00 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Konst_One все одинарные кавычки внутри строки должны быть задвоены. Просите своих программеров 1С, чтобы они для вас готовили строку в нужном вам формате. Или выгружайте эти строки сначала куда-нибудь и форматируйте их сами правильно. Зачем пороть чушЪ. Ей больно. Все в рамках https://docs.microsoft.com/ru-ru/sql/t-sql/functions/string-escape-transact-sql?view=sql-server-ver15 Одинарные кавычки для JSON НЕ спецсимвол - можно совать куды хошь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:02 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. Вы совсем необразованы? Повтор одиночной кавычки = esc-символ. Он нужен только если вы пытаетесь ЯВНО НАПИСАТЬ строковую константу в Т-SQL. declare @str nvarchar(1024) = N'Строка с одинарной '' кавычкой'; Содержимое @str в этом случае Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:07 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
aleks222 ferg Но мне подается из 1С json как раз с одиночными , а не сдвоенными одинарными кавычками. Вы совсем необразованы? зачем переходить на личности? я по вам не прокатывался, а мог бы так, что мало бы не показалось. Вы бы хоть показали как преобразовать этот полученный json, чтобы его можно было распарсить, а не только бы надували бы щеки и писали не верю. Пожаловался на вас модератору, чтобы сбить с вас спесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:39 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
Konst_One как вариант: записывайте приходящие строки в промежуточную таблицу в поле [Json1C] nvarchar(max), потом от туда уже извлекайте и парсите себе на здоровье. Код: sql 1. 2. 3.
Спасибо за участие ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:41 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
court ferg declare @json nvarchar ferg одинарные кавычки выделил жирным "одинарные кавычки" должны быть подвоены Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Отличное решение! Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:42 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
ferg court пропущено... пропущено... "одинарные кавычки" должны быть подвоены Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Отличное решение! Спасибо! Интересуюсь, сонечка, в чем тут "решение"? Вам действительно json на гумажке приносят и вы его врукопашную печатаете в MS SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 17:39 |
|
не могу распарить json с одинарными кавычками
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 23:21 |
|
|
Start [/forum/topic.php?fid=46&fpage=2&tid=1683840]: |
0ms |
get settings: |
13ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
31ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
353ms |
get tp. blocked users: |
1ms |
others: | 6ms |
total: | 416ms |
0 / 0 |