Maison >développement back-end >C++ >Comment puis-je sérialiser les énumérements sous forme de chaînes à l'aide de JavascriptSerializer?

Comment puis-je sérialiser les énumérements sous forme de chaînes à l'aide de JavascriptSerializer?

Susan Sarandon
Susan Sarandonoriginal
2025-01-29 09:36:11469parcourir

How Can I Serialize Enums as Strings Using JavaScriptSerializer?

Utilisez JavascriptSerializer pour traiter la sérialisation des chaînes énumérées

Lors de l'utilisation d'objets sérialisés JavascripTSerializer contenant des attributs d'énumération, les résultats JSON rencontrent souvent des problèmes contenant une valeur entière au lieu d'une représentation de chaîne énumérée.

Considérons un exemple de classe contenant des attributs d'énumération:

<code class="language-csharp">public class Person
{
    public int Age { get; set; }
    public Gender Gender { get; set; }
}</code>
Le résultat JSON attendu:

Question:
<code class="language-json">{ 
    "Age": 35, 
    "Gender": "Male" 
}</code>

En utilisant JavascriptSerializer, l'attribut de genre sera sérialisé à une valeur entière, tel que "Gender": 0 au lieu de "Gender": "Male".

Solution:

Utilisez newtonsoft.json newtonsoft.json fournit une solution pour utiliser l'attribut

:

Le convertisseur de configuration global [JsonConverter]

<code class="language-csharp">using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

public class Person
{
    public int Age { get; set; }

    [JsonConverter(typeof(StringEnumConverter))]
    public Gender Gender { get; set; }
}</code>
Catégorie d'équipement:

Ajouter

Attributs à l'ascenseur lui-même, et sérialiser / compteur -sérialisation de toutes les instances en chaîne.
  • jsonserializer: Ajoutez le convertisseur en sérialiseur afin que toutes les énumérations soient traitées pendant le processus de sérialisation. [JsonConverter] Classe JSONConverr:
  • Sérialisez le transformateur pour contrôler l'énumération de l'objet spécifique.
  • Autre configuration:
  • Le constructeur permet le contrôle du contrôle et des valeurs.

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!

Déclaration:
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