---
title: Чтение JSON
slug: общие-обмен-данными-чтение-файлов-примеры/чтение-json
---

```bsl

&НаКлиенте
Асинх Процедура ПрочитатьФайл(Команда)
    
    Расширение = "json";

    ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
    ПараметрыДиалога.Заголовок = "Выберите файл";
    ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
    
    ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
    Если ОписаниеФайла = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    АдресДанных = ОписаниеФайла.Адрес;

    Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;

    ПрочитатьФайлНаСервере(АдресДанных, Расширение);

КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)

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


КонецПроцедуры 
```