Обработка Json данных с помощью Newtonsoft

Parent Previous Next

Обработка 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