7.7 и разбор json от Озона: Ошибка компиляции Microsoft JScript: Предполагается наличие '}'

1. Snus71 233 24.08.23 21:21 Сейчас в теме +0.8 $m
В 7ке разбираю скриптом json полученный от озона. Ответ 200ок, тело ответа возвращается (и даже при желании записывается в файл) но при разборе получаю сабж. Хотя такой же джейсон от ВБ проходит на ура. Кто сталкивался. Подозреваю что дело в кодировке ответа, но как победить - хз. Код ниже

	
                Об = СоздатьОбъект("AddIn.HTTPS77"); 	
                Об.УстановитьЗаголовокЗапроса("Content-Type","application/json; charset=UTF-8"); 
                Об.УстановитьЗаголовокЗапроса("Client-Id",.НомерКлиентаОзон); 
                Об.УстановитьЗаголовокЗапроса("Api-Key",ТокенОзон);   
                возв = об.Обработать("https://api-seller.ozon.ru/v3/posting/fbs/list","POST",ТекстЗапроса,0,);
		Если Найти(СокрЛП(Об.СтрокаСостоянияОтвета), "200")>0 Тогда          
			СП = глРазборJSON(возв);  // вот тут имеем ошибку 


тут функция разбора джейсона, но вряд ли она интересна
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1852218 24.08.23 22:26 Сейчас в теме
(1)
Хотя такой же джейсон от ВБ проходит на ура.
Для начала - записать оба ответа в файл и сравнить содержимое. Тогда уже думать о способах победы.

Наугад: если в конце ответа не хватает "}", то можно просто добавлять в ваш "возв" этот символ перед разбором.
3. Snus71 233 24.08.23 22:46 Сейчас в теме
(2)
(2)
Наугад: если в конце ответа не хватает "}", то можно просто добавлять в ваш "возв" этот символ перед разбором.


нет, пробовал


(2) Для начала - записать оба ответа в файл и сравнить содержимое.

Ну как их сравнить. Содержимое разное. Структура разная
4. user1852218 25.08.23 09:57 Сейчас в теме
(3)
Ну как их сравнить.
Не знаю - файлы у вас, а не у меня. :)
Содержимое разное. Структура разная
Ясное дело - если бы все было одинаковое, то и ошибки бы не было.

Для начала - сравнить количество открывающих и закрывающих скобок.

А перво-наперво - проверить объем: если мне не изменяет склероз, то у 7.7 есть ограничение на размер строковой переменной, 64к или около того.

У вас ведь "возв" - это строка?
5. Snus71 233 25.08.23 12:38 Сейчас в теме
(4)
(4)
У вас ведь "возв" - это строка?


да, строка. Причем длины такой, что с ней ничего в 77 не сделать, только отправить на разбор скриптом

Я думал, что utf4 с символами ВОМ. Но нет, в файле в начале нет EF BB BF
6. dvk09 2 06.08.24 10:27 Сейчас в теме
(1)
Об = СоздатьОбъект("AddIn.HTTPS77");
Об.УстановитьЗаголовокЗапроса("Content-Type","application/json; charset=UTF-8");
Об.УстановитьЗаголовокЗапроса("Client-Id",.НомерКлиентаОзон);
Об.УстановитьЗаголовокЗапроса("Api-Key",ТокенОзон);
возв = об.Обработать("https://api-seller.ozon.ru/v3/posting/fbs/list","POST",ТекстЗапроса,0,);


Вот это тоже в скрипте выполнить, сохранить этим-же скриптом в файл, потом скормить скрипту, для разбора файл, а не строку...
EarlyBird; +1 Ответить
7. EarlyBird 7 06.08.24 21:18 Сейчас в теме
(6) +100500
(5) причина в том, что ты в семёрочную переменную пытаешься получить строку огромной длины, которая туда целиком не лезет.
Получение тела и передача его в парсинг должны идти внутри скрипта, не выходя наружу
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот