Не работает чтение JSON на стороне сервера

1. Kstore 24.08.20 13:31 Сейчас в теме
Не работает чтение JSON на стороне сервера.
Пытаюсь запустить на стороне сервера регламентное задание, получаю ошибку
Получение элемента по индексу для значения не определено

На клиенте все отрабатывает ОК.
JSON получаю таким образом:
&НаСервере
Функция ЗапросДобавлениеЗаказа(Заказ) Экспорт
	ssl = Новый ЗащищенноеСоединениеOpenSSL;
    HTTPСоединение = Новый HTTPСоединение("site.ru",,,,,,ssl); 		
		HTTPЗапрос = Новый HTTPЗапрос("урл получения json строки"); 	
	Попытка
        Результат =  HTTPСоединение.Получить(HTTPЗапрос);
		Тело = Результат.ПолучитьТелоКакСтроку();
		Возврат(Тело);
    Исключение
        Сообщить("Произошла сетевая ошибка!");
        ВызватьИсключение;
    КонецПопытки;
КонецФункции
Показать


В чем проблема подскажите плз?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
9. vardeg 193 26.08.20 11:25 Сейчас в теме
(6)
У меня возникло стойкое ощущение что дело не в json вообще.
Ошибка обращения по индексу где у типа объекта это не предусмотрено. В том плане что если я в структуре или соответствии попытаюсь обартиться по ключу через квадратные скобки Чтото[0] - то я получу ошибку как раз индекса.
Пушто нет индекса для этих типов данных.
Если вы получаете ID какойто и по нему смотрите - сделайте явное приведение типов. Возможно строка воспринимается как число и вместо обращения по строковму ключу вы пытаетесь обратиться по числовому значению, что интерпретируется как попытка обращения по индексу, которого как я уже сказал - нет.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ImHunter 318 24.08.20 13:55 Сейчас в теме
(1) Покажите код, который на сервере не работает. Текст ошибки вообще как-то мало связан с проблемами чтения JSON.
3. Kstore 24.08.20 14:01 Сейчас в теме
(2)

Вот код где я разбираю json и обращаюсь к элементам
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ЗаказJSON);
Заказ = ПрочитатьJSON(ЧтениеJSON, Истина);


На клиенте я могу обратиться к Заказ["contact"]["name"] (к примеру) а на сервере вылезает эта ошибка.
4. UtSpar 134 24.08.20 14:09 Сейчас в теме
(3) На сервере посмотрите он читает заказ в какую структуру? Таблица?
5. ImHunter 318 24.08.20 14:09 Сейчас в теме
(3) Проверьте для начала, что вообще на сервере прочитывается. Если написать тест проблемно, то можно в журнал регистрации записать, что прочитано. Вероятно, прочитанное не является Соответствием.
Fox-trot; +1 Ответить
6. Kstore 24.08.20 18:17 Сейчас в теме
(5) суть еще в том, что сначала идет 1 запрос, с него я получаю массив неких ID (успешно), затем в цикле перебираю нужные ID и делаю еще несколько запросов (вот они уже возвращают пустые значения, хотя запросы таким же образом). Возможно ли что 1с не умеет в моем случае на сервере делать несколько запросов ?
8. user1060219 25.08.20 18:59 Сейчас в теме
(6)
Возможно ли что 1с не умеет в моем случае на сервере делать несколько запросов ?


Скорее всего, дело не в этом. Можно подробнее, несколько запросов - это в цикле вызывается функция ЗапросДобавлениеЗаказа()? Запросы точно успешно отрабатывают, какой код состояния у ответов?
9. vardeg 193 26.08.20 11:25 Сейчас в теме
(6)
У меня возникло стойкое ощущение что дело не в json вообще.
Ошибка обращения по индексу где у типа объекта это не предусмотрено. В том плане что если я в структуре или соответствии попытаюсь обартиться по ключу через квадратные скобки Чтото[0] - то я получу ошибку как раз индекса.
Пушто нет индекса для этих типов данных.
Если вы получаете ID какойто и по нему смотрите - сделайте явное приведение типов. Возможно строка воспринимается как число и вместо обращения по строковму ключу вы пытаетесь обратиться по числовому значению, что интерпретируется как попытка обращения по индексу, которого как я уже сказал - нет.
7. bill33 25.08.20 08:02 Сейчас в теме
При работе на сервере переменная Тело что возвращает ?
10. Pixar0000 01.09.20 22:32 Сейчас в теме
может просто
На клиенте я могу обратиться к Заказ["contact"]["name"] (к примеру) а на сервере вылезает эта ошибка.

ничего не возвращает?
Оставьте свое сообщение

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