Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Запись и чтение
Дальше: Функции преобразования и восстановления

Чтение в соответствие

По умолчанию чтение данных методом ПрочитатьJSON() выполняется в структуру. Но некоторые внешние системы могут формировать имена свойств, которые, с точки зрения «1С:Предприятия», содержат недопустимые символы. Например, свойство может называться "user.first" или "user.last". С точки зрения платформы это недопустимое значение для строкового ключа (т. к. имя свойства не может содержать точку).

Например, JSON-документ содержит соответствие, имена свойств которого включают пробел и другие недопустимые символы (листинг 1.22).

Листинг 1.22. Содержимое JSON-документа

{

"Контрагент №2": "ОАО Алмаз",

"Объем Продаж": 6000000,

"Мобильный тел.": "+79998887766",

"Поставщик": true

}

При стандартном чтении такого документа в структуру будет получена ошибка (рис. 1.3).

Рис. 1.3. Ошибка при чтении в структуру JSON-документа

В этом случае надо читать данные в соответствие, потому что ключи (имена свойств) соответствия могут быть любыми. Для этого вторым параметром в метод ПрочитатьJSON(ЧтениеJSON, Истина) надо передать истину (листинг 1.23).

Листинг 1.23. Пример десериализации соответствия из JSON-документа

&НаСервереБезКонтекста

Процедура РаботаССоответствиемНаСервере()

 

// Создать объект чтения и открыть файл, из которого будет выполняться чтение.

Чтение = Новый ЧтениеJSON;

Чтение.ОткрытьФайл("c:\temp\Serialisation_8.json");

 

// Выполнить чтение данных в соответствие Данные с помощью объекта чтения (Чтение).

Данные = ПрочитатьJSON(Чтение, Истина);

// Данные = ПрочитатьJSON(Чтение);

 

// Завершить работу с файлом.

Чтение.Закрыть();

 

// Вывести результат чтения в сообщение.

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Контрагент: " + Данные["Контрагент №2"] + ", Объем продаж: " + Данные["Объем Продаж"] +

", Поставщик: " + Данные["Поставщик"] + ", Телефон моб.: " + Данные["Мобильный тел."];

Сообщение.Сообщить();

 

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

Результат чтения JSON-документа, содержимое которого показано в листинге 1.22, будет выглядеть следующим образом (рис. 1.4).

Рис. 1.4. Чтение данных из JSON-документа в соответствие

Назад: Запись и чтение
Дальше: Функции преобразования и восстановления