.net 6 Deserialize Json To Object

5 min read Jun 03, 2024
.net 6 Deserialize Json To Object

Désérialiser JSON en Objet avec .NET 6

Introduction

Dans le développement d'applications .NET 6, il est courant d'interagir avec des données au format JSON. La désérialisation, qui consiste à convertir des données JSON en objets .NET, est une tâche essentielle pour traiter ces données. Cet article vous guidera à travers le processus de désérialisation JSON en objets dans .NET 6, en utilisant les outils et les techniques les plus efficaces.

Désérialiser JSON en Objet avec System.Text.Json

La bibliothèque System.Text.Json est intégrée à .NET 6 et offre un moyen performant et flexible de désérialiser des données JSON. Voici un exemple de code simple pour désérialiser un JSON en un objet :

using System.Text.Json;

// Le JSON à désérialiser
string jsonString = @"{""name"": ""John Doe"", ""age"": 30}";

// Définir le type d'objet cible
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// Désérialiser le JSON en objet Person
Person person = JsonSerializer.Deserialize(jsonString);

// Afficher les valeurs de l'objet
Console.WriteLine($"Name: {person.Name}");
Console.WriteLine($"Age: {person.Age}");

Ce code définit une classe Person avec les propriétés Name et Age. La méthode JsonSerializer.Deserialize<T>(string) désérialise le JSON en un objet Person.

Gestion des Noms de Propriétés Différents

Il est fréquent que les noms des propriétés dans le JSON ne correspondent pas exactement aux noms des propriétés dans votre classe .NET. Pour gérer cette situation, vous pouvez utiliser l'attribut JsonPropertyName de System.Text.Json :

using System.Text.Json;
using System.Text.Json.Serialization;

// Le JSON à désérialiser
string jsonString = @"{""firstName"": ""John"", ""yearsOld"": 30}";

// Définir le type d'objet cible
public class Person
{
    [JsonPropertyName("firstName")]
    public string Name { get; set; }

    [JsonPropertyName("yearsOld")]
    public int Age { get; set; }
}

// Désérialiser le JSON en objet Person
Person person = JsonSerializer.Deserialize(jsonString);

// Afficher les valeurs de l'objet
Console.WriteLine($"Name: {person.Name}");
Console.WriteLine($"Age: {person.Age}");

Dans cet exemple, les attributs JsonPropertyName indiquent à la bibliothèque System.Text.Json de mapper les propriétés JSON firstName et yearsOld aux propriétés .NET Name et Age respectivement.

Désérialiser des Objets Complexes

Vous pouvez également désérialiser des JSON complexes avec des objets imbriqués. Voici un exemple de désérialisation d'un JSON contenant une liste d'objets :

using System.Text.Json;
using System.Text.Json.Serialization;

// Le JSON à désérialiser
string jsonString = @"
{
  ""employees"": [
    {""name"": ""John Doe"", ""age"": 30},
    {""name"": ""Jane Doe"", ""age"": 25}
  ]
}";

// Définir le type d'objet cible
public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Company
{
    public List Employees { get; set; }
}

// Désérialiser le JSON en objet Company
Company company = JsonSerializer.Deserialize(jsonString);

// Afficher les valeurs des objets
foreach (Employee employee in company.Employees)
{
    Console.WriteLine($"Name: {employee.Name}, Age: {employee.Age}");
}

Dans cet exemple, la classe Company contient une liste d'objets Employee. La bibliothèque System.Text.Json désérialise le JSON en un objet Company avec une liste d'employés.

Conclusion

Désérialiser des données JSON en objets .NET est une tâche courante dans les applications .NET 6. La bibliothèque System.Text.Json offre un moyen performant et flexible pour effectuer cette opération. En utilisant les techniques et les attributs appropriés, vous pouvez facilement désérialiser des JSON simples ou complexes en objets .NET.

Related Post


Featured Posts