Приветствую Вас ГостьПонедельник, 29.04.2024, 07:54

Каталог статей


Таблица значений в строку и обратно

Для передачи таблицы значений через HTTP и WEB сервисы надо преобразовать её в строку, либо заранее описать структуру передаваемых данных, что бывает утомительно.

Есть несколько вариантов:

1. Устаревший метод:

На стороне отправителя ТЗСтрокой = ЗначениеВСтрокуВнутр(ТЗ); 

На стороне получателя ТЗ = ЗначениеИзСтрокиВнутр(ТЗСтрокой);

Эти методы устарели, о чем предупреждает справка по ним.

2. Сериализовать в XML

На стороне отправителя:

    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, тз);
    ТаблицаСтрокой = ЗаписьXML.Закрыть();

На стороне получателя

    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(ТаблицаСтрокой);
    ТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);

Плюсом этого метода является то, что в колонках может быть  любое значение, в том числе структура и массив. Кроме того, так можно передавать данные любого типа. Ссылка автоматически преобразуется в УИД.

3. Преобразовать в JSON.

Основная проблема в том, что в формате JSON допускается записывать только значения следующих типов:

  • Строка,
  • Число,
  • Булево,
  • Дата (преобразованная в строку),
  • Массив,
  • ФиксированныйМассив,
  • Структура,
  • ФиксированнаяСтруктура,
  • Соответствие,
  • ФиксированноеСоответствие.

Таблицу значений напрямую преобразовать в JSON не получиться, так как её нет в перечисляемых выше типах.

Преобразовать таблицу значений в JSON можно если использовать СериализаторXDTO:

На стороне отправителя:

    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON,ТЗ);
    ТаблицаСтрокой = ЗаписьJSON.Закрыть();

На стороне получателя

    ЗаписьJSON = Новый ЧтениеJSON;
    ЗаписьJSON.УстановитьСтроку(ТаблицаСтрокой);
    ТЗ = СериализаторXDTO.ПрочитатьJSON(ЗаписьJSON,Тип("ТаблицаЗначений"));

Здесь надо надо обязательно указать тип в методе ПрочитатьJSON(), иначе выйдет ошибка. Это делает невозможным использование универсальных преобразований объектов в строку формата JSON и обратно.

 

Еще одним вариантом преобразования Таблицы значений в JSON и обратно является преобразование таблицы значений в массив структур перед преобразованием в JSON

Пример можно посмотреть здесь: https://www.levindp.ru/1candjson/

Категория: Взаимодействие с другими базами, приложениями и источниками данных | Добавил: leshic (27.12.2022)
Просмотров: 848 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [40]
Администрирование [34]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [28]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0