Maison > développement back-end > C++ > Comment sérialiser les champs de classe à l'aide de System.Text.Json dans .NET ?

Comment sérialiser les champs de classe à l'aide de System.Text.Json dans .NET ?

Mary-Kate Olsen
Libérer: 2025-01-14 06:21:44
original
700 Les gens l'ont consulté

How to Serialize Class Fields Using System.Text.Json in .NET?

Sérialisation des champs de classe dans System.Text.Json

System.Text.Json dans .NET Core 3 introduit la prise en charge de la sérialisation et de la désérialisation des objets. Cependant, un problème survient souvent lorsque l'on tente de sérialiser des champs de classe à l'aide de cette bibliothèque.

Considérons l'exemple suivant :

<code>public class Car
{
    public int Year { get; set; } // 正确序列化
    public string Model; // 未序列化
}</code>
Copier après la connexion

Lorsque vous essayez de sérialiser une instance Car, la chaîne JSON générée ne contient pas de champs tels que Modèle. En effet, System.Text.Json dans .NET Core 3 ne prend pas en charge les champs sérialisés.

Solution

Dans .NET 5 et versions ultérieures, System.Text.Json a la possibilité de sérialiser les champs. Ceci peut être réalisé en activant la prise en charge sur le terrain ou en marquant manuellement les champs pour la sérialisation.

Activer la sérialisation des champs

Lors de la sérialisation, vous pouvez activer la sérialisation des champs en définissant la propriété JsonSerializerOptions.IncludeFields sur true :

<code>Car car = new Car { Model = "Fit", Year = 2008 };

// 启用字段序列化
var options = new JsonSerializerOptions { IncludeFields = true };

// 传递 "options" 进行序列化
var json = JsonSerializer.Serialize(car, options);</code>
Copier après la connexion

Marquer les champs à sérialiser

Vous pouvez également utiliser l'attribut [JsonInclude] pour marquer des champs individuels à sérialiser :

<code>[JsonInclude]
public string Model;</code>
Copier après la connexion

Exemples de deux méthodes

<code>public class Car
{
    public int Year { get; set; } // 正确序列化

    [JsonInclude]
    public string Model;
}

// 或

Car car = new Car { Model = "Fit", Year = 2008 };

var options = new JsonSerializerOptions { IncludeFields = true };

var json = JsonSerializer.Serialize(car, options);</code>
Copier après la connexion

En implémentant ces techniques, vous pouvez vous assurer que les objets sérialisés et désérialisés ont exactement les mêmes valeurs, y compris les valeurs dans les 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