Добрый день! Столкнулся с задачей - поднять http-сервис на стороне 1с, соединение установлено, но вот не могу разобраться с обработкой вложенного json.
Сам json:
На стороне 1С все это дело принимает такая функция:
Насколько я понял (а с 1с я впервые честно говоря сталкиваюсь), то переменная "Товары = Данные.Товары;) это структура. Из того, что вычитал, я могу к значениям обратиться по ключам. Вот я пытаюсь это делать, но в ответ получаю "Поле объекта не обнаружено (Артикул)".
Пытался разными способами достучаться, не получается, второй день сижу.
ps. Прошу строго не судить, я скорее любитель и пытаюсь автоматизировать свою рутину по основной работе.
Спасибо заранее.
Сам json:
items = {
"item1": {
"Артикул": "5051",
"Количество": "2",
"Цена": "599"
},
"item2": {
"Артикул": "6052",
"Количество": "1",
"Цена": "369"
}
}
ПоказатьНа стороне 1С все это дело принимает такая функция:
Функция ТестДжейсонТоварыМетод1(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТелоЗапроса);
Данные = ПрочитатьJSON(ЧтениеJSON);
Имя = Данные.Имя;
Телефон = Данные.Телефон;
Товары = Данные.Товары;
ЧтениеJSON.Закрыть();
Результат = "";
Для Каждого Товар из Товары Цикл
Артикул = Товар["Артикул"];
Количество = Товар["Количество"];
Цена = Товар["Цена"];
Результат = Результат + "Артикул: " + Артикул + " Количество: " + Количество + " Цена: " + Цена;
КонецЦикла;
Ответ.УстановитьТелоИзСтроки(Результат);
Возврат Ответ
ПоказатьНасколько я понял (а с 1с я впервые честно говоря сталкиваюсь), то переменная "Товары = Данные.Товары;) это структура. Из того, что вычитал, я могу к значениям обратиться по ключам. Вот я пытаюсь это делать, но в ответ получаю "Поле объекта не обнаружено (Артикул)".
Пытался разными способами достучаться, не получается, второй день сижу.
ps. Прошу строго не судить, я скорее любитель и пытаюсь автоматизировать свою рутину по основной работе.
Спасибо заранее.
По теме из базы знаний
Найденные решения
(6) Для Каждого Товар из Товары Цикл
Артикул = Товар.Значение["Артикул"];
Количество = Товар.Значение["Количество"];
Цена = Товар.Значение["Цена"];
Результат = Результат + "Артикул: " + Артикул + " Количество: " + Количество + " Цена: " + Цена;
КонецЦикла;
Артикул = Товар.Значение["Артикул"];
Количество = Товар.Значение["Количество"];
Цена = Товар.Значение["Цена"];
Результат = Результат + "Артикул: " + Артикул + " Количество: " + Количество + " Цена: " + Цена;
КонецЦикла;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Спасибо за ответ. Но вот что я вижу, если просто вернуть Товары как есть - говорит, возвращается структура.
В какую сторону копать, как это дело обрабатывать - вообще без понятия.
Товары = Данные.Товары;
ЧтениеJSON.Закрыть();
Результат = "Товары: " + Товары;
В какую сторону копать, как это дело обрабатывать - вообще без понятия.
Прикрепленные файлы:
(4) Спасибо. В моем случае мне надо еще в один цикл заходить, иначе функция возвращает
"item1: Структура".
А нельзя ли как-то обращаться к значениям по ключу? Иначе я не могу понять, как мне потом присваиваться Артикул, Цену, Количество...Функция просто их перебирает подряд.
"item1: Структура".
А нельзя ли как-то обращаться к значениям по ключу? Иначе я не могу понять, как мне потом присваиваться Артикул, Цену, Количество...Функция просто их перебирает подряд.
(6) Для Каждого Товар из Товары Цикл
Артикул = Товар.Значение["Артикул"];
Количество = Товар.Значение["Количество"];
Цена = Товар.Значение["Цена"];
Результат = Результат + "Артикул: " + Артикул + " Количество: " + Количество + " Цена: " + Цена;
КонецЦикла;
Артикул = Товар.Значение["Артикул"];
Количество = Товар.Значение["Количество"];
Цена = Товар.Значение["Цена"];
Результат = Результат + "Артикул: " + Артикул + " Количество: " + Количество + " Цена: " + Цена;
КонецЦикла;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот