Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahserialisasikan Objek Kanak-kanak dengan Nama Kunci Angka Dinamik dalam JSON menggunakan Newtonsoft.Json.Net?

Bagaimana untuk Menyahserialisasikan Objek Kanak-kanak dengan Nama Kunci Angka Dinamik dalam JSON menggunakan Newtonsoft.Json.Net?

Barbara Streisand
Barbara Streisandasal
2025-01-13 19:00:43164semak imbas

How to Deserialize Child Objects with Dynamic Numeric Key Names in JSON using Newtonsoft.Json.Net?

Gunakan Newtonsoft.Json.Net untuk menyahsiri sub-objek dengan nama kunci angka dinamik

Menyahsiri data JSON dengan nama kunci dinamik boleh menjadi mencabar, terutamanya apabila kekunci adalah angka. Berikut ialah cara untuk menyelesaikan masalah ini menggunakan Newtonsoft.Json.Net.

Struktur JSON yang disediakan mengandungi objek "pengguna" induk dengan sifat yang diketahui dan tidak diketahui. Untuk menampung sifat yang tidak diketahui, penukar tersuai diperlukan.

Penukar tersuai

Kelas TypedExtensionDataConverter ialah penukar JSON tersuai yang mengendalikan penyahserialisasian objek dengan sifat dinamik. Ia memastikan bahawa sifat yang tidak diketahui dinyahsiri ke dalam bekas yang ditaip, dalam kes ini kamus objek Pengguna.

Penukar menggunakan atribut JsonTypedExtensionDataAttribute untuk mengenal pasti atribut yang harus mengandungi data dinamik.

Takrif kelas diubah suai

Untuk menggunakan penukar tersuai, kelas "Pengguna" dan "Pengguna" telah diubah suai untuk mengandungi sifat dan penukar.

Kelas pengguna:

<code>[JsonConverter(typeof(TypedExtensionDataConverter<Users>))]
class Users
{
    ...
    [JsonTypedExtensionData]
    public Dictionary<string, User> UserTable { get; set; }
}</code>

Kelas Pengguna kekal tidak berubah.

Cara menggunakan

Menggunakan penukar tersuai dan definisi kelas yang diubah suai, penyahserikatan boleh dilakukan seperti berikut:

<code>string json = @"...与之前相同的 JSON...";

RootObject root = JsonConvert.DeserializeObject<RootObject>(json);</code>

Harta UserTable dalam objek Pengguna kini akan mengandungi objek Pengguna yang dinyahsiri, membenarkan akses kepada datanya.

Kesimpulan

Dengan menggunakan penukar JSON tersuai, anda boleh menyahsiri sub-objek dengan nama kunci angka dinamik, membolehkan anda mengendalikan struktur JSON yang kompleks dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk Menyahserialisasikan Objek Kanak-kanak dengan Nama Kunci Angka Dinamik dalam JSON menggunakan Newtonsoft.Json.Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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