Heim > Backend-Entwicklung > C++ > Wie kann ich Klassenfelder mit System.Text.Json serialisieren und deserialisieren?

Wie kann ich Klassenfelder mit System.Text.Json serialisieren und deserialisieren?

Barbara Streisand
Freigeben: 2025-01-14 07:32:47
Original
754 Leute haben es durchsucht

How Can I Serialize and Deserialize Class Fields with System.Text.Json?

Verwenden Sie System.Text.Json, um Klassenfelder zu serialisieren und zu deserialisieren

Die .NET Core 3.x-Version von System.Text.Json unterstützt die Serialisierung und Deserialisierung von Klassenfeldern nicht nativ. Dies kann ein Problem für Klassen sein, die zur Datenspeicherung stark auf Felder angewiesen sind.

Um dieses Problem zu lösen, bietet System.Text.Json je nach .NET-Version zwei verschiedene Methoden:

.NET Core 3.x

Leider unterstützt System.Text.Json in .NET Core 3.x keine Felder. Um diese Einschränkung zu überwinden, müssen Sie einen benutzerdefinierten Konverter erstellen, der die Serialisierung und Deserialisierung der Felder übernimmt.

.NET 5 und höher

Ab .NET 5 können öffentliche Felder serialisiert werden, indem die Eigenschaft JsonSerializerOptions.IncludeFields auf true gesetzt wird. Alternativ können Sie die Felder mithilfe des Attributs [JsonInclude] explizit für die Serialisierung markieren. Ein Beispiel ist wie folgt:

<code class="language-csharp">using System.Text.Json;

public class Car
{
    public int Year { get; set; }
    [JsonInclude]
    public string Model;
}

static void SerializeWithFields()
{
    var car = new Car { Model = "Fit", Year = 2008 };
    var options = new JsonSerializerOptions { IncludeFields = true };
    var json = JsonSerializer.Serialize(car, options);
    Console.WriteLine(json); // {"Model": "Fit", "Year": 2008}
}</code>
Nach dem Login kopieren

Durch die Nutzung dieser Techniken können Sie sicherstellen, dass Ihre Klassen mithilfe von System.Text.Json effizient serialisiert und deserialisiert werden können, selbst wenn es um Klassenfelder geht.

Das obige ist der detaillierte Inhalt vonWie kann ich Klassenfelder mit System.Text.Json serialisieren und deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage