.net 6 Json Deserialize Dynamic

3 min read Jun 03, 2024
.net 6 Json Deserialize Dynamic

Désérialisation dynamique de JSON avec .NET 6

Le format JSON est omniprésent dans le développement moderne. La désérialisation de données JSON dans des objets .NET est une tâche courante. Cependant, il existe des situations où la structure des données JSON est inconnue à l'avance, ou peut varier. Dans ces cas, la désérialisation dynamique devient indispensable.

Désérialisation dynamique avec System.Text.Json

Le package System.Text.Json fournit des outils performants pour la désérialisation de JSON en .NET 6. Voici un exemple de désérialisation dynamique:

using System.Text.Json;

// JSON à désérialiser
string jsonString = @"
{
  ""name"": ""John Doe"",
  ""age"": 30,
  ""address"": {
    ""street"": ""123 Main Street"",
    ""city"": ""Anytown""
  }
}";

// Désérialiser en objet JSON
var jsonObject = JsonSerializer.Deserialize(jsonString);

// Accéder aux propriétés
Console.WriteLine(jsonObject.GetProperty("name").GetString()); // Affiche "John Doe"
Console.WriteLine(jsonObject.GetProperty("age").GetInt32()); // Affiche 30

// Accéder aux propriétés imbriquées
var address = jsonObject.GetProperty("address");
Console.WriteLine(address.GetProperty("street").GetString()); // Affiche "123 Main Street"

Dans cet exemple, JsonSerializer.Deserialize<JsonElement>() désérialise le JSON en un objet JsonElement. L'objet JsonElement représente un nœud JSON, offrant des méthodes pour accéder aux propriétés et aux valeurs, telles que GetProperty(), GetString(), GetInt32(), etc.

Utilisation de JsonDocument

Une alternative à JsonElement est l'utilisation de JsonDocument. JsonDocument offre une représentation plus complète de la structure JSON, permettant une navigation plus fine et une meilleure gestion de la mémoire.

using System.Text.Json;

// JSON à désérialiser
string jsonString = @"
{
  ""name"": ""John Doe"",
  ""age"": 30,
  ""address"": {
    ""street"": ""123 Main Street"",
    ""city"": ""Anytown""
  }
}";

// Désérialiser en JsonDocument
using var document = JsonDocument.Parse(jsonString);

// Accéder aux propriétés
Console.WriteLine(document.RootElement.GetProperty("name").GetString()); // Affiche "John Doe"
Console.WriteLine(document.RootElement.GetProperty("age").GetInt32()); // Affiche 30

// Accéder aux propriétés imbriquées
var address = document.RootElement.GetProperty("address");
Console.WriteLine(address.GetProperty("street").GetString()); // Affiche "123 Main Street"

Conclusion

La désérialisation dynamique de JSON en .NET 6 offre une grande flexibilité pour traiter des données JSON dont la structure est inconnue ou variable. L'utilisation de JsonElement ou JsonDocument permet d'accéder aux données de manière simple et efficace. En conclusion, la désérialisation dynamique de JSON est une technique essentielle pour les applications .NET 6 qui doivent gérer des données JSON de manière flexible et adaptable.

Related Post