Heim >Backend-Entwicklung >C++ >Wie serialisieren Sie eine .NET Enum als Zeichenfolge in JSON mit JavaScriptSerializer?

Wie serialisieren Sie eine .NET Enum als Zeichenfolge in JSON mit JavaScriptSerializer?

DDD
DDDOriginal
2025-01-29 09:21:14230Durchsuche

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

serialisieren .NET Enums als Zeichenfolgen in JSON mit JavaScriptSerializer

Der Standard .NET JavaScriptSerializer gibt häufig Enum als ihre Ganzzahlwerte innerhalb von JSON aus. Um sie als Zeichenfolgen zu serialisieren, die ihre Namen darstellen, gibt es verschiedene Methoden.

Methode 1: Nutzung von JSON.NET StringEnumConverter

Der unkomplizierteste und empfohlenste Ansatz verwendet JSON.NETs leistungsstarke StringEnumConverter. Dieser Konverter kann entweder auf der Enum -Definitionsebene oder auf der Eigenschaftsebene angewendet werden:

<code class="language-csharp">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; }
}</code>

Dies stellt sicher Gender

Methode 2: Globale Konfigurationsoptionen

Konfigurieren Sie für eine breitere Anwendung die

global:

StringEnumConverter

  • Auf der Enum -Ebene:

    Anwenden Sie den Konverter auf die Enum -Definition selbst für die konsistente String -Serialisierung über alle Verwendungen dieses Enums:

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

    : Fügen Sie den Konverter einer bestimmten JsonSerializer -Schichtungsinstanz hinzu, um nur die durch diese Instanz serialisierten Enums zu beeinflussen: JsonSerializer

    <code class="language-csharp">  var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...</code>
  • mit

    : wenden Sie den Konverter während der Serialisierung direkt an: JsonConvert

    <code class="language-csharp">  string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());</code>
Anpassung von

StringEnumConverter Der Konstruktor

bietet eine weitere Anpassung an, sodass die Kontrolle über die Benennung von Konventionen und Zahlenbehandlung ermöglicht wird. Weitere Optionen finden Sie in der Dokumentation von JSON.NET.

. StringEnumConverter

Das obige ist der detaillierte Inhalt vonWie serialisieren Sie eine .NET Enum als Zeichenfolge in JSON mit JavaScriptSerializer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn