.net 6 Deserialize Json

4 min read Jun 03, 2024
.net 6 Deserialize Json

Désérialiser des données JSON avec .NET 6

Le format JSON (JavaScript Object Notation) est devenu un standard de facto pour l'échange de données sur le web. .NET 6 offre des outils puissants pour travailler avec le JSON, y compris la désérialisation, qui consiste à convertir un texte JSON en objets .NET.

Introduction à la désérialisation JSON

La désérialisation JSON en .NET 6 se fait généralement à l'aide de la classe System.Text.Json.JsonSerializer. Cette classe propose des méthodes pour convertir un flux de texte JSON en un objet .NET correspondant.

Désérialisation de base

using System.Text.Json;

// Texte JSON d'entrée
string jsonString = @"{""name"": ""John Doe"", ""age"": 30}";

// Désérialisation en un objet anonyme
var jsonObject = JsonSerializer.Deserialize>(jsonString);

// Accès aux propriétés désérialisées
Console.WriteLine(jsonObject["name"]); // Affiche : John Doe
Console.WriteLine(jsonObject["age"]); // Affiche : 30

Dans cet exemple, le texte JSON est désérialisé en un dictionnaire anonyme. Vous pouvez également désérialiser en un type .NET défini, en utilisant la syntaxe suivante:

// Définition d'un type .NET
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// Désérialisation en un objet Person
Person person = JsonSerializer.Deserialize(jsonString);

// Accès aux propriétés désérialisées
Console.WriteLine(person.Name); // Affiche : John Doe
Console.WriteLine(person.Age); // Affiche : 30

Désérialisation avancée

.NET 6 offre des options de configuration pour la désérialisation, telles que la gestion des noms de propriétés, les conversions de types et la validation.

Gestion des noms de propriétés:

// Configuration de la désérialisation avec des noms de propriétés différents
var options = new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true
};

// Désérialisation en utilisant les options configurées
Person person = JsonSerializer.Deserialize(jsonString, options);

Conversion de types:

// Définition d'un type avec un champ de type DateTime
public class Event
{
    public DateTime Date { get; set; }
}

// Désérialisation avec conversion de type
string jsonString = @"{""date"": ""2023-03-15T10:00:00Z""}";
Event event = JsonSerializer.Deserialize(jsonString);

// Affichage de la date désérialisée
Console.WriteLine(event.Date); // Affiche : 2023-03-15T10:00:00Z

Validation des données:

// Définition d'un type avec des attributs de validation
public class Product
{
    [Required]
    public string Name { get; set; }

    [Range(0, 100)]
    public int Price { get; set; }
}

// Désérialisation avec validation
string jsonString = @"{""name"": ""My Product"", ""price"": -10}";
Product product = JsonSerializer.Deserialize(jsonString);

// Vérification des erreurs de validation
if (!product.IsValid)
{
    // Traitement des erreurs de validation
}

Conclusion

.NET 6 propose un ensemble complet d'outils pour désérialiser des données JSON. La classe JsonSerializer offre une variété d'options pour configurer la désérialisation et gérer les conversions de types et la validation. En utilisant ces outils, vous pouvez facilement convertir des données JSON en objets .NET et les manipuler dans vos applications.

Featured Posts