Heim >Backend-Entwicklung >C++ >Wie konvertiere ich JsonElement in ein stark typisiertes Objekt in System.Text.Json?
In .NET Core 3 stellt die Json.NET-Bibliothek die ToObject-Methode bereit, mit der JToken-Objekte in stark typisierte Klassen konvertiert werden können. In diesem Artikel wird die entsprechende Methode zum Deserialisieren von JsonElement-Objekten in System.Text.Json untersucht.
In .NET 6 und höher:
JsonSerializer hat Erweiterungsmethoden hinzugefügt, um direkt von JsonElement- und JsonDocument-Objekten zu deserialisieren:
<code class="language-csharp">public static TValue? Deserialize<TValue>(this JsonDocument document, JsonSerializerOptions? options = null); public static TValue? Deserialize<TValue>(this JsonElement element, JsonSerializerOptions? options = null);</code>
In .NET 5 und früher:
Es gibt einen Workaround, mit dem sich die Leistung verbessern lässt:
<code class="language-csharp">public static T ToObject<T>(this JsonElement element, JsonSerializerOptions options = null) { var bufferWriter = new ArrayBufferWriter<byte>(); using (var writer = new Utf8JsonWriter(bufferWriter)) element.WriteTo(writer); return JsonSerializer.Deserialize<T>(bufferWriter.WrittenSpan, options); }</code>
<code class="language-csharp">var str = ""; // 一些 JSON 字符串 var jDoc = JsonDocument.Parse(str); var myClass = jDoc.RootElement.GetProperty("SomeProperty").Deserialize<SomeClass>();</code>
Das obige ist der detaillierte Inhalt vonWie konvertiere ich JsonElement in ein stark typisiertes Objekt in System.Text.Json?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!