"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo serializar la enumeración de .NET en cadenas JSON con JavaScriptSerializer?

¿Cómo serializar la enumeración de .NET en cadenas JSON con JavaScriptSerializer?

Publicado el 2025-04-12
Navegar:202

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

Serializing .net enums como cadenas en JSON con JavaScriptSerializer

el estándar .net javascriptSerializer a menudo genera enumeros como sus valores enteros dentro de JSON. Para serializarlos como cadenas que representan sus nombres, existen varios métodos.

método 1: aprovechando json.net stringenumConverter

El enfoque más directo y recomendado utiliza el poderoso stringenumConverter . Este convertidor se puede aplicar en el nivel de definición de Enum o en el nivel de propiedad:

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; }
}

Esto garantiza la propiedad género serializa como una cadena ("hombre" o "mujer") en el JSON resultante.

Método 2: Opciones de configuración global

Para una aplicación más amplia, configure el stringenumConverter globalmente:

  • en el nivel enum: Aplique el convertidor a la definición enum en sí para serialización de cadena consistente en todos los usos de ese enum:

      [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }
  • con jsonserializer : Agregue el convertidor a una instancia específica jsonserializer para afectar solo los enums serializados por esa instancia:

      var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...
  • con jsonConvert : Aplique el convertidor directamente durante la serialización:

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

personalización de stringenumConverter

El constructor stringenumConverter ofrece una mayor personalización, permitiendo el control sobre las convenciones de nombres y el manejo de números. Consulte la documentación JSON.NET para obtener opciones detalladas.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3