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

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

Barbara Streisand
Barbara Streisandoriginal
2025-01-29 09:31:08905parcourir

How to Serialize Enums as Strings Using JavaScriptSerializer?

JavascriptSerializer la méthode de sérialisation de chaîne énumérée Explication détaillée

Lorsque vous utilisez JavascriptSerializer sérialiser un objet contenant des attributs d'énumération, le résultat JSON peut contenir une valeur entière au lieu de la représentation de la chaîne. Afin de résoudre ce problème, vous pouvez considérer les méthodes suivantes:

Convertisseur basé sur l'attribut

Utilisez les attributs pour décorer l'attribut de définition ou d'objet et spécifiez le type

. Cela indiquera que le programme de sérialisation convertit la valeur d'énumération en une chaîne: [JsonConverter] StringEnumConverter

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

[JsonConverter(typeof(StringEnumConverter))]
public Gender Gender { get; set; }</code>

ou, ajouter directement à

:

StringEnumConverter JsonSerializer Configuration globale

Vous pouvez également configurer le convertisseur dans une configuration globale dans l'énumération ou
<code class="language-csharp">serializer.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());</code>

Énumération: JsonConverter

  • JSONConveter:

    <code class="language-csharp">  [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }</code>
  • Autres options lialingcase:

    Utilisez la fonction de construction
    <code class="language-csharp">  JsonConvert.SerializeObject(MyObject, new Newtonsoft.Json.Converters.StringEnumConverter());</code>
    pour contrôler la chaîne de la chaîne et s'il faut accepter le numéro.
Personnalisation de l'attribut:

Vous pouvez utiliser les attributs

et utiliser
    pour décorer le convertisseur.

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