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

Вопрос:

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

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

Вопросы:
Что за интерфейсы IObjectList/ICompositeObject/ICompositeObjectList<TObject>, и как обрабатывать такой конвертированный массив?
Можно-ли обработать массив из ответа веб-сервиса и как это сделать?

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

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

Ответ:

Пример реализации:
Сервис (схема):

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

Сервис


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


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

Нравится

Поделиться

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

ICompositeObjectList представляет собой массив элементов ICompositeObject. Перебирается обычным циклом (foreach).
ICompositeObject - dictionary (ключ-значение).
Получить значение можно одним из 2х методов:
 

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

 

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