Skip to content

Чтение JSON

&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
Расширение = "json";
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
ПараметрыДиалога.Заголовок = "Выберите файл";
ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
Если ОписаниеФайла = Неопределено Тогда
Возврат;
КонецЕсли;
АдресДанных = ОписаниеФайла.Адрес;
Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;
ПрочитатьФайлНаСервере(АдресДанных, Расширение);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)
ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанных);
ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение);
ДанныеФайла.Записать(ПутьКФайлу);
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПутьКФайлу);
ДанныеJSON = ПрочитатьJSON(ЧтениеJSON);
// Получаем массив структур
Если ТипЗнч(ДанныеJSON) = Тип("Структура") Тогда
МассивДанных = Новый Массив;
МассивДанных.Добавить(ДанныеJSON);
ИначеЕсли ТипЗнч(ДанныеJSON) = Тип("Массив") Тогда
МассивДанных = ДанныеJSON;
КонецЕсли;
Для каждого ДанныеКонтрагента Из МассивДанных Цикл
// обрабатываем
КонецЦикла;
ЧтениеJSON.Закрыть();
УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры