Для десериализации объекта в C# необходимо использовать классы и методы из пространства имен System.Text.Json или Newtonsoft.Json (также известный как Json.NET). В зависимости от выбранной библиотеки, подходы для десериализации будут немного отличаться.
Для начала, нужно иметь сериализуемый объект или JSON-строку, которую мы хотим десериализовать. Предположим, у нас есть следующий JSON-объект:
{ "name": "John", "age": 30, "city": "New York" }
## Используя System.Text.Json
В .NET Core и .NET 5+ доступна встроенная активно поддерживаемая библиотека System.Text.Json. Для десериализации JSON-объекта в .NET Core вы можете воспользоваться следующим кодом:
using System; using System.Text.Json; public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } class Program { static void Main() { string jsonString = "{"name":"John","age":30,"city":"New York"}"; Person person = JsonSerializer.Deserialize<Person>(jsonString); Console.WriteLine($"Name: {person.Name}"); Console.WriteLine($"Age: {person.Age}"); Console.WriteLine($"City: {person.City}"); } }
В этом примере мы определяем класс Person с соответствующими свойствами и затем используем метод JsonSerializer.Deserialize<T> для десериализации JSON-строки в экземпляр класса Person.
## Используя Newtonsoft.Json (Json.NET)
В случае использования библиотеки Newtonsoft.Json, процесс десериализации будет выглядеть следующим образом:
using System; using Newtonsoft.Json; public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } class Program { static void Main() { string jsonString = "{"name":"John","age":30,"city":"New York"}"; Person person = JsonConvert.DeserializeObject<Person>(jsonString); Console.WriteLine($"Name: {person.Name}"); Console.WriteLine($"Age: {person.Age}"); Console.WriteLine($"City: {person.City}"); } }
Здесь мы используем метод JsonConvert.DeserializeObject<T> для десериализации JSON-строки в экземпляр класса Person.
Оба этих подхода предоставляют удобные способы десериализации JSON-объектов в C#. Выбор между ними обычно зависит от вашей конкретной ситуации и предпочтений. В случае .NET Core рекомендуется использовать System.Text.Json, так как это встроенная библиотека с хорошей производительностью. В случае более старых версий .NET Framework или предпочтении Json.NET для своих функций и возможностей, можно воспользоваться Newtonsoft.Json.