Обработка Json данных с помощью Newtonsoft
Для работы с Json данными была добавлена библиотека Newtonsoft.Json
Официальная страница: https://www.newtonsoft.com/json
В качестве примера воспользоваемся Rest запросом к адресу https://jsonplaceholder.typicode.com/posts/1/
чтобы получить тестовые данные в Json формате:
{ "userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" }
Далее с помощью Newtonsoft.Json выполним обработку полученного результата.
Сначала нужно описать отдельный класс в котором перечислены поля которые присутствуют в Json-е
public class TestJson
{
public int userId { get; set; }
public int id { get; set; }
public string title { get; set; }
public string body { get; set; }
}
Выполняем Rest запрос и получаем Json данные
string result = await tester.RestGetAsync(@"https://jsonplaceholder.typicode.com/posts/1/", TimeSpan.FromDays(1), "UTF-8");
Обрабатываем полученные данные и выводим их
TestJson dataJson = JsonConvert.DeserializeObject<TestJson>(result);
tester.ConsoleMsg("UserID: " + dataJson.userId.ToString());
Полный пример описан в скрипте ниже:
Файл: ExampleTest3.cs |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.IO; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using Newtonsoft.Json; using HatFramework; namespace Hat { // Вспомогательный класс для JSON данных public class TestJson { public int userId { get; set; } public int id { get; set; } public string title { get; set; } public string body { get; set; } }
public class ExampleTest3 { Tester tester; // Главная переменная для работы автотеста // Главная входная функция (с этой функции начинается работа автотеста) public async void Main(Form browserWindow) { tester = new Tester(browserWindow); // Инициализация главной переменной await setUp(); // Функция начала работы с автотестом await test(); // Функция выполнения действий теста await tearDown(); // Функция завершения работы с автотестом } public async Task setUp() { await tester.BrowserFullScreenAsync(); // Устанавливает разрешение браузер на весь экран } public async Task test() { await tester.TestBeginAsync(); // Начало выполнения действий await tester.GoToUrlAsync("https://jsonplaceholder.typicode.com", 5); // Загрузка страницы по указанному адресу // Выполняет Rest запрос к API по указанному URL и получает результат в формате JSON string result = await tester.RestGetAsync(@"https://jsonplaceholder.typicode.com/posts/1/", TimeSpan.FromDays(1), "UTF-8"); tester.ConsoleMsg(result); // Выводит полученный результат в консоль // Выполняет выборку данных из полученного JSON TestJson dataJson = JsonConvert.DeserializeObject<TestJson>(result); // Выводит данные в консоль tester.ConsoleMsg("UserID: " + dataJson.userId.ToString()); tester.ConsoleMsg("ID: " + dataJson.id.ToString()); tester.ConsoleMsg("Title: " + dataJson.title.ToString()); tester.ConsoleMsg("Body: " + dataJson.body.ToString());
await tester.TestEndAsync(); // Завершение выполнения действий } public async Task tearDown() { await tester.BrowserCloseAsync(); // Закрывает браузер } } } |
Created with the Personal Edition of HelpNDoc: News and information about help authoring tools and software