"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment sérialiser l'énumération .NET dans les chaînes JSON avec JavascriptSerializer?

Comment sérialiser l'énumération .NET dans les chaînes JSON avec JavascriptSerializer?

Publié le 2025-04-12
Parcourir:978

How to Serialize a .NET Enum as a String in JSON using JavaScriptSerializer?

sérialisation .net enums en tant que chaînes en json avec javascriptSerializer

Le standard .net javascriptSerializer produit souvent des énumérations en tant que valeurs entières dans JSON. Pour les sérialiser en tant que chaînes représentant leurs noms, plusieurs méthodes existent.

Méthode 1: levier json.net stringNenumConverter

L'approche la plus simple et la plus recommandée utilise le puissant stringNenumConverter de JSON.net . Ce convertisseur peut être appliqué au niveau de définition de l'énum ou au niveau de propriété:

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

[JsonConverter(typeof(StringEnumConverter))]
public enum Gender { Male, Female }

public class Person
{
    public int Age { get; set; }
    [JsonConverter(typeof(StringEnumConverter))] // Or apply at property level
    public Gender Gender { get; set; }
}

Cela garantit que la propriété sexe sérialise comme une chaîne ("mâle" ou "femelle") dans le JSON résultant.

Méthode 2: Options de configuration globale

pour une application plus large, configurez le stringNenumConverter globalement:

  • Au niveau de l'énumération: appliquez le convertisseur à la définition de l'énum elle-même pour la sérialisation de chaîne cohérente sur toutes les utilisations de cet enum:

      [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }
  • avec jsonSerializer : Ajoutez le convertisseur à une instance spécifique jsonSerializer pour affecter uniquement les enums sérialisés par cette instance:

      var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...
  • avec JSONConvert : Appliquez directement le convertisseur pendant la sérialisation:

      string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());

Personnalisation de stringNenumConverter

Le constructeur stringNenumConverter offre une personnalisation supplémentaire, permettant un contrôle sur les conventions de dénomination et la manipulation des nombres. Reportez-vous à la documentation JSON.NET pour des options détaillées.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3