MyTetra Share
Делитесь знаниями!
Работаем с JSON при помощи C#
Время создания: 04.09.2019 18:55
Автор: https://progtask.ru
Текстовые метки: JSON, сереализация, c#
Раздел: Компьютер - C# - JSON
Запись: Kozlov-AE/Tetra/master/base/1565035125yhoh2j3kh2/text.html на raw.githubusercontent.com

В этой статье разберём сериализацию и десериализацию JSON при помощи библиотеки Newtonsoft.Json. Для этого создадим простое консольное приложение.
Библиотеку Newtonsoft.Json можно установить при помощи Nuget.

Сериализация JSON

Привожу ниже программный код:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

using Newtonsoft.Json;

using System;

using System.Collections.Generic;

 

namespace Json

{

    class Website

    {

        public string Name { get; set; }

        public string Url { get; set; }

        public List

<Article> Articles { get; set; }

    }

 

    class Article

    {

        public string Name { get; set; }

        public string Url { get; set; }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            // создаём объект класса Website и заполняем его

            Website progtaskRu = new Website();

            progtaskRu.Name = "progtask.ru";

            progtaskRu.Url = @"https://progtask.ru";

            progtaskRu.Articles = new List <Article>();

            progtaskRu.Articles.Add(

                new Article {

                    Name = "Чтение и запись CSV в C#",

                    Url = @"https://progtask.ru/csv-c-sharp/" });

            progtaskRu.Articles.Add(

                new Article {

                    Name = "Делаем Angular приложение десктопным. Angular + Electron",

                    Url = "https://progtask.ru/angular-electron/" });

 

            // сериализуем объект

            // при помощи Formatting.Indented указываем, что хотим переносить

            // каждую сущность на новую строку

            string json = JsonConvert.SerializeObject(progtaskRu, Formatting.Indented);

 

            // выводим полученный json на консоль

            Console.WriteLine(json);

        }

    }

}

Результат работы:

Десериализация JSON

Json, который мы будем использовать:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

{

  "Name": "progtask.ru",

  "Url": "https://progtask.ru",

  "Articles": [

    {

      "Name": "Чтение и запись CSV в C#",

      "Url": "https://progtask.ru/csv-c-sharp/"

    },

    {

      "Name": "Делаем Angular приложение десктопным. Angular + Electron",

      "Url": "https://progtask.ru/angular-electron/"

    }

  ]

}

Программный код:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

using Newtonsoft.Json;

using System.Collections.Generic;

 

namespace Json

{

    class Website

    {

        public string Name { get; set; }

        public string Url { get; set; }

        public List

<Article> Articles { get; set; }

    }

 

    class Article

    {

        public string Name { get; set; }

        public string Url { get; set; }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            string json = @"

            {

                'Name': 'progtask.ru',

                'Url': 'https://progtask.ru',

                'Articles': [

                    {

                        'Name': 'Чтение и запись CSV в C#',

                        'Url': 'https://progtask.ru/csv-c-sharp/'

                    },

                    {

                        'Name': 'Делаем Angular приложение десктопным. Angular + Electron',

                        'Url': 'https://progtask.ru/angular-electron/'

                    }

                ]

            }";

 

            // десериализуем json в объект класса Website

            Website progtaskRu = JsonConvert.DeserializeObject<Website>(json);

        }

    }

}

Для того, чтобы получить классы C# из JSON, вы можете воспользоваться сайтом json2csharp.

Так же в этом разделе:
  • Ссылки
  • Работаем с JSON при помощи C#
 
MyTetra Share v.0.59
Яндекс индекс цитирования