Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JSON в соответствии
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Знаю что тема уже заёрзанная но все же не могу разобрать где ошибка.
Пытаю читать в соответсвии json и вот тут ошибка

Ошибка при вызове метода контекста (УстановитьСтроку)
{ВнешняяОбработка.LidoJSON.Форма.Форма.Форма(18)}:ЧтениеJSON.УстановитьСтроку(мсСтрока.Значение);
{ВнешняяОбработка.LidoJSON.Форма.Форма.Форма(5)}:ЗаполнитьТаблицу();

по причине:
Несоответствие типов (параметр номер '1')


    ПолученныеДанные = ЧтениеИзJSON();  
        
                Для каждого СтрокиСоотв из ПолученныеДанные Цикл
                Для каждого мсСтрока из СтрокиСоотв Цикл
                    ЧтениеJSON = новый ЧтениеJSON;
                    ЧтениеJSON.УстановитьСтроку(мсСтрока.Значение);
                    СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
                    
                         НоваяСтрока = Таб.Добавить();
                        НоваяСтрока.Артикул =  СтруктураДанных.vendorCode;
                                                                     
                      КонецЦикла;
            КонецЦикла;


burza @ Сегодня, 10:23 необходимо зарегистрироваться для просмотра ссылки ,
alex-l1904
burza @ Сегодня, 11:23 необходимо зарегистрироваться для просмотра ссылки ,
що саме міститься в мсСтрока.Значение коли виникає помилка ?
burza
alex-l1904 @ Сегодня, 10:30 необходимо зарегистрироваться для просмотра ссылки ,
фото выклал
или есть пример как читать в соответствии
alex-l1904
burza @ Сегодня, 11:37 необходимо зарегистрироваться для просмотра ссылки ,
для початку можна

Попытка
ЧтениеJSON.УстановитьСтроку(мсСтрока.Значение);
Исключение
КонецПопытки

чи це помилка одного рядка ? якщо так, то порівняти з коректними рядками...
burza
alex-l1904 @ Сегодня, 10:42 необходимо зарегистрироваться для просмотра ссылки ,
через попытку, вроде не строки проблема а всего. хотя через отладку видно что данные есть

Ошибка при вызове метода контекста (ПрочитатьJSON)
{ВнешняяОбработка.LidoJSON.Форма.Форма.Форма(23)}:СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
{ВнешняяОбработка.LidoJSON.Форма.Форма.Форма(5)}:ЗаполнитьТаблицу();

по причине:
Источник данных JSON не открыт

burza @ Сегодня, 10:44 необходимо зарегистрироваться для просмотра ссылки ,
все вроде ок а не идет, глаза уже замылил)
alex-l1904
burza @ Сегодня, 11:53 необходимо зарегистрироваться для просмотра ссылки ,
із довідки

УстановитьСтроку(<СтрокаJSON>)
Параметры:
<СтрокаJSON> (обязательный)
Тип: Строка.
Строка, содержащая текст в формате JSON.

треба значення мсСтрока.Значение привести до Строка, содержащая текст в формате JSON.
burza
alex-l1904 @ Сегодня, 11:05 необходимо зарегистрироваться для просмотра ссылки ,
так там и так она вроде. есть какой-то может пример у кого как прочитать?
alex-l1904
burza @ Сегодня, 12:17 необходимо зарегистрироваться для просмотра ссылки ,
є питання, якщо в мсСтрока.Значение міститься Соответствие, то нащо

ЧтениеJSON = новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(мсСтрока.Значение);
СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);

?
burza
alex-l1904 @ Сегодня, 11:36 необходимо зарегистрироваться для просмотра ссылки ,
а как его раскрыть? циклом по строке не то, нужно уже получить весь список что там есть? как сделать?
alex-l1904
burza @ Сегодня, 12:38 необходимо зарегистрироваться для просмотра ссылки ,


Для Каждого ЭлементСоответствия из Соответствие1 цикл
Сообщить("Соответствие1 [" +
Строка(ЭлементСоответствия.Ключ) + "] = " +
ЭлементСоответствия.Значение);
КонецЦикла;
burza
alex-l1904 @ Сегодня, 11:41 необходимо зарегистрироваться для просмотра ссылки ,
мне нужно результат добавить в таблицу значений. в одну строку всё. а циклом будет перебирать по каждой и данные со строки уже будет писать в новую в таблице. Должно быть в таком виде.

Артикул = Результат["article"];
Бренд = Результат["brand"];
Наименование = Результат["name"];
Цена = Результат["price"]

burza @ Сегодня, 11:45 необходимо зарегистрироваться для просмотра ссылки ,
Вот как работает
      ПолученныеДанные = ЧтениеИзJSON();  
        
                Для каждого СтрокиСоотв из ПолученныеДанные Цикл
                    Для каждого мсСтрока из СтрокиСоотв Цикл  
                            
                    
                    ЧтениеJSON = новый ЧтениеJSON;                
                    Строка = мсСтрока.Значение;
                    СтрокаJSON = Строка;
                    
                    
                            
                         НоваяСтрока = Таб.Добавить();

                               НоваяСтрока.Артикул      = СтрокаJSON["vendorCode"];
                            НоваяСтрока.id        = СтрокаJSON["id"];
                            НоваяСтрока.categoryId        = СтрокаJSON["categoryId"];
                            НоваяСтрока.vendor        = СтрокаJSON["vendor"];
                            НоваяСтрока.description        = СтрокаJSON["description"];
                            НоваяСтрока.name        = СтрокаJSON["name"];
                            НоваяСтрока.price_main        = СтрокаJSON["price_main"];
                            
                            
                                       
                      КонецЦикла;
            КонецЦикла;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.