Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Cekap Menukar JsonElement kepada Objek .NET?

Bagaimana untuk Cekap Menukar JsonElement kepada Objek .NET?

Patricia Arquette
Lepaskan: 2025-01-08 15:31:40
asal
773 orang telah melayarinya

Menukar JsonElement dengan Cekap kepada Objek .NET

System.Text.Json, yang diperkenalkan dalam .NET Core 3.0, menawarkan penyelesaian pengendalian JSON berprestasi tinggi. Walau bagaimanapun, tidak seperti Json.NET, ia tidak mempunyai persamaan langsung dengan kaedah ToObject untuk penukaran mudah JsonElement kepada objek .NET sehingga .NET 6.

.NET 6 dan Seterusnya: Penukaran Dipermudah

.NET 6 dan versi yang lebih baru menyediakan kaedah sambungan terbina dalam dalam JsonSerializer yang menyelaraskan proses:

<code class="language-csharp">public static TValue? Deserialize<TValue>(this JsonDocument document, JsonSerializerOptions? options = null);
public static object? Deserialize(this JsonElement element, Type returnType, JsonSerializerOptions? options = null);</code>
Salin selepas log masuk

Ini membolehkan penukaran mudah:

<code class="language-csharp">using var jDoc = JsonDocument.Parse(jsonString);
var myObject = jDoc.RootElement.GetProperty("propertyName").Deserialize<MyObjectType>();</code>
Salin selepas log masuk

.NET 5 dan Terdahulu: Penyelesaian Praktikal

Untuk projek yang menggunakan .NET 5 atau versi terdahulu, yang tidak mempunyai kaedah sambungan yang mudah ini, penyelesaian melibatkan menulis JsonElement kepada penimbal bait dan kemudian menyahsiri daripada penimbal itu:

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

public static T ToObject<T>(this JsonDocument document, JsonSerializerOptions options = null)
{
    return document.RootElement.ToObject<T>(options);
}</code>
Salin selepas log masuk

Kaedah ini mengelakkan overhed penukaran rentetan atau rentang aksara, menyediakan penyelesaian yang cekap untuk versi .NET yang lebih lama.

How to Efficiently Convert JsonElement to a .NET Object?

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menukar JsonElement kepada Objek .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan