Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahserialisasikan JSON Bersarang kepada Kamus Bersarang dengan Pemetaan Jenis Tersuai dalam C#?

Bagaimana untuk Menyahserialisasikan JSON Bersarang kepada Kamus Bersarang dengan Pemetaan Jenis Tersuai dalam C#?

Patricia Arquette
Lepaskan: 2024-12-30 18:13:09
asal
1005 orang telah melayarinya

How to Deserialize Nested JSON to a Nested Dictionary with Custom Type Mapping in C#?

Menyahsiri JSON Bersarang kepada Kamus Bersarang dengan Pemetaan Jenis JSON Tersuai

Menyahsiri objek JSON ke dalam Kamus bersarang ialah tugas biasa, tetapi penyahserialisasian System.Text.Json lalai sering menyebabkan semua objek bersarang diwakili sebagai tika JsonElement. Untuk mencapai pemetaan jenis yang lebih khusus, penukar JSON tersuai diperlukan.

Penukar JSON Tersuai untuk Pemetaan Jenis

Penukar JSON tersuai berikut, bernama ObjectAsPrimitiveConverter, menyediakan yang diingini pemetaan taip:

  • String -> rentetan
  • Nombor -> int/double
  • Objek -> Kamus

Pelaksanaan Penukar

Kaedah Baca dan Tulis penukar melaksanakan adat pemetaan:

  • Baca:

    • Menghuraikan token JSON yang masuk berdasarkan jenisnya.
    • Mengembalikan yang khusus .Jenis bersih (rentetan, int, double, Kamus, dsb.) atau membuang pengecualian jika jenis tidak boleh dihuraikan.
  • Tulis:

    • Kendalikan jenis objek dengan menulis objek JSON kosong, seperti yang diperlukan oleh penukaran tersuai .

Penggunaan Penukar

Untuk menggunakan penukar tersuai, ia mesti ditambahkan pada JsonSerializerOptions semasa penyahserikatan:

var options = new JsonSerializerOptions
{
    Converters = { new ObjectAsPrimitiveConverter() },
    WriteIndented = true,
};

dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
Salin selepas log masuk

Pilihan Konfigurasi

penukar menyediakan beberapa konfigurasi pilihan:

  • FloatFormat: Menentukan sama ada nombor titik terapung harus dihuraikan sebagai dua kali ganda atau perpuluhan.
  • UnknownNumberFormat: Menentukan cara untuk mengendalikan nombor yang tidak boleh dihuraikan menjadi .Net primitive taip.
  • ObjectFormat: Mengkonfigurasikan jenis output untuk objek JSON sebagai sama ada Kamus atau ExpandoObject.

Contoh Biola

Demonstrasi langsung tersedia di sini: [Sample Fiddle](https://dotnetfiddle.net/tD9pPI)

Atas ialah kandungan terperinci Bagaimana untuk Menyahserialisasikan JSON Bersarang kepada Kamus Bersarang dengan Pemetaan Jenis Tersuai dalam C#?. 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