Инструменты пользователя

Инструменты сайта


Боковая панель

Перевод этой страницы:

ru:json_xml

Обработка JSON и XML

Иногда веб-сервисы отправляют информацию в формате JSON или XML, и чтобы получить данные их приходится разбирать.

Для упрощения этой задачи появилось действие “Обработка JSON/XML”

Парсинг

Первый вариант работы - это разбор JSON/XML строки.

Можно сразу провести обработку используя JSONPath или XPath. Результат выполнение действия заносится в переменную проекта Json или Xml соответственно, и данные можно просмотреть в окне “Переменные”.

Для доступа к значениям доступны макросы. Например: {-Json.employees.Count-} или {-Json.employees[2].firstName-}

После того как парсинг прошел успешно, в любом поле ввода где поддерживаются макросы будут полные подсказки.

Сохранение в список или таблицу

Данные могут содержать массивы и их удобно занести в список для последующей обработки после того как нужный текст был распаршен.

“Свойство” - указывает на поле которое будет разбираться как массив. Здесь возможно использовать вложенность, указывая через точку (например: store.employees). Если поле не является массивом, то в список заносится один элемент. “Подсвойство” - так как в массивах могут находиться сложные объекты, можно указать какое значение из него брать для списка

Запись данных в таблицу работает аналогичным образом, только в каждую колонку можно записать свое подсвойство.

Особенности XML

У XML имеются атрибуты узлов. Для доступа к ним в макросах используются квадратные скобки со строковым значением. (Например: {-Xml.PurchaseOrder[«PurchaseOrderNumber»]-})

Работа в коде

В C# объекты JSON и XML находятся в объекте project. Они имеют тип dynamic. Из-за этого редактор кода не может полноценно показывать выпадающие подсказки.

Пример кода работы с XML:

project.Xml.FromString(project.Variables["XmlText"].Value);
return project.Xml.PurchaseOrder.Address[0]["Type"];

Пример 2:

var list = new List<string>();
for(int i = 0; i < project.Xml.PurchaseOrder.Address.Count; i++)
{
	list.Add(project.Xml.PurchaseOrder.Address[i].Name.Value);
}
return string.Join(", ", list);

Пример 3:

var list = new List<string>();
foreach(dynamic i in project.Xml.PurchaseOrder.Address)
{
	list.Add(i.Name.Value);
}
return string.Join(", ", list);

Аналогично происходит и с Json. Однако стоит учесть, что доступ к свойствам происходит без использования “Value”.

Пример:

return project.Json.employees[1].firstName;

Конструктор XPath/JsonPath

Инструмент полезен когда нужно составить правильных XPath/JSONPath.

Он позволяет выделить кусок в исходном тексте и если это возможно автоматически создать выражение.

ru/json_xml.txt · Последние изменения: 2016/11/25 16:00 — vladz