Maison > développement back-end > C++ > Comment puis-je sérialiser et désérialiser les champs de classe avec System.Text.Json ?

Comment puis-je sérialiser et désérialiser les champs de classe avec System.Text.Json ?

Barbara Streisand
Libérer: 2025-01-14 07:32:47
original
754 Les gens l'ont consulté

How Can I Serialize and Deserialize Class Fields with System.Text.Json?

Utilisez System.Text.Json pour sérialiser et désérialiser les champs de classe

La version .NET Core 3.x de System.Text.Json ne prend pas en charge nativement la sérialisation et la désérialisation des champs de classe. Cela peut poser un problème pour les classes qui dépendent fortement des champs pour le stockage des données.

Pour résoudre ce problème, System.Text.Json propose deux méthodes différentes selon la version de .NET :

.NET Core 3.x

Malheureusement, dans .NET Core 3.x, System.Text.Json ne prend pas en charge les champs. Pour surmonter cette limitation, vous devez créer un convertisseur personnalisé pour gérer la sérialisation et la désérialisation des champs.

.NET 5 et supérieur

À partir de .NET 5, les champs publics peuvent être sérialisés en définissant la propriété JsonSerializerOptions.IncludeFields sur true. Vous pouvez également marquer explicitement les champs pour la sérialisation à l'aide de l'attribut [JsonInclude]. Un exemple est le suivant :

<code class="language-csharp">using System.Text.Json;

public class Car
{
    public int Year { get; set; }
    [JsonInclude]
    public string Model;
}

static void SerializeWithFields()
{
    var car = new Car { Model = "Fit", Year = 2008 };
    var options = new JsonSerializerOptions { IncludeFields = true };
    var json = JsonSerializer.Serialize(car, options);
    Console.WriteLine(json); // {"Model": "Fit", "Year": 2008}
}</code>
Copier après la connexion

En tirant parti de ces techniques, vous pouvez vous assurer que vos classes peuvent être sérialisées et désérialisées efficacement à l'aide de System.Text.Json, même lorsqu'il s'agit de champs de classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal