Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Всё большее количество веб-сервисов переходит на обмен сообщениями в формате JSON. Чтобы облегчить труд прикладных разработчиков мы решили сделать работу с JSON максимально простой и удобной.
Сейчас в глобальном контексте есть 4 метода чтения и записи JSON: ЗаписатьJSON, ЗаписатьДатуJSON, ПрочитатьJSON, ПрочитатьДатуJSON. Функциональность этих методов очень богатая и, по имеющейся у нас информации, она избыточна для большинства задач прикладных разработчиков. А ещё – вышеупомянутые методы недоступны в веб-клиенте. При этом многие задачи интеграции требуется решать именно из веб-клиента.
В версии 8.3.23 мы добавим в глобальный контекст два новых метода: ЗаписатьЗначениеJSON (WriteJSONValue) и ПрочитатьЗначениеJSON (ReadJSONValue). Функциональность новых методов более «легкая» по сравнению с существующими и её должно хватить для большинства задач интеграции. Так, если старые методы ПрочитатьJSON и ЗаписатьJSON работают через объекты ЧтениеJSON и ЗаписьJSON соответственно, то синтаксис новых методов гораздо проще:
ЗаписатьЗначениеJSON(<Значение>) возвращает строку.
ПрочитатьЗначениеJSON(<Строка>) возвращает Структура, Массив, Число, Строка, Булево, Неопределено.
Оба методы будут доступны везде: тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер. Мы не объявляем предыдущие 4 метода устаревшими, но рекомендуем использовать новые методы везде, где это возможно; это, в частности, позволит писать универсальный код, исполняемый на всех компонентах системы.
Приведем пример. Предположим, нам нужно для передачи в веб-сервис сериализовать в строку JSON структуру вида:
{
"Фамилия": "Иванов",
"Имя": "Иван",
"Отчество": "Иванович",
"Телефоны": [
"8-999-999-99-91",
"8-999-999-99-92"
]
}
В старом варианте код будет такой:
&НаСервере Функция ПолучитьJSONНаСервере() Структура = Новый Структура; Структура.Вставить("Фамилия", "Иванов"); Структура.Вставить("Имя", "Иван"); Структура.Вставить("Отчество", "Иванович"); Телефоны = Новый Массив; Телефоны.Добавить("8-999-999-99-91"); Телефоны.Добавить("8-999-999-99-92"); Структура.Вставить("Телефоны", Телефоны); //получение строки JSON ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, Структура); Возврат ЗаписьJSON.Закрыть(); КонецФункции |
&НаКлиенте Функция ЗаписатьЗначениеJSONКлиент() Структура = Новый Структура; Структура.Вставить("Фамилия", "Иванов"); Структура.Вставить("Имя", "Иван"); Структура.Вставить("Отчество", "Иванович"); Телефоны = Новый Массив; Телефоны.Добавить("8-999-999-99-91"); Телефоны.Добавить("8-999-999-99-92"); Структура.Вставить("Телефоны", Телефоны); //получение строки JSON Возврат ЗаписатьЗначениеJSON(Структура); КонецФункции |
Мы рассчитываем, что новые методы облегчат решение многих прикладных задач по интеграции.