Как разобрать массив данных ответа веб-сервиса?

Вопрос:

Возникла необходимость разобрать массив с большим кол-вом данным.  На академии такой пример не рассмотрен.

В курсе о возможности парсинга массива при настройке параметров JSONPath, но это работает при условии возвращения одной записи в массиве. А как быть с большим кол-вом данных?



При настройке обработки ответа веб-сервиса, есть поле "Является массивом", при его активации, ответ конвертируется в интерфейс IObjectList, и записать его в параметрах бизнес процесса представляется возможным только с типом данных "Коллекция значений", что усложняет парсинг массива.



Вопросы:

Что за интерфейсы IObjectList/ICompositeObject/ICompositeObjectList, и как обрабатывать такой конвертированный массив?

Можно-ли обработать массив из ответа веб-сервиса и как это сделать?



Веб-сервис http://mysite.com:64123/0/rest/KmWebService/GenderSearchContact?GenderName={значение}, выборка по полу {Male/Female}

Выборка полей по каждому контакту: Id, Name, Phone

Ответ:

Пример реализации:

Сервис (схема):

Изображение удалено.

Рекомендации: используйте контракты для передачи объектов, для формирования json, используйте возможности newtonsoft.json

Бизнес-процесс:

Изображение удалено.



Сервис

Изображение удалено.

Изображение удалено.

Настройки элемента "Вызвать веб сервис"

Изображение удалено.

Настройки элемента "Задание-сценарий":

Изображение удалено.

Нравится

Поделиться

1 комментарий

ICompositeObjectList представляет собой массив элементов ICompositeObject. Перебирается обычным циклом (foreach).

ICompositeObject - dictionary (ключ-значение).

Получить значение можно одним из 2х методов:

 

/// <summary>Returns inner value by key.</summary>
    /// <param name="key">The key.</param>
    /// <param name="valueType">Type of the value.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue(string key, Type valueType, out object value);
 
    /// <summary>Returns inner value by key.</summary>
    /// <typeparam name="TValueType">The type of the value.</typeparam>
    /// <param name="key">The key.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue<TValueType>(string key, out TValueType value);

 

Показать все комментарии