Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahserialisasikan Objek Kanak-kanak dengan Nama Kunci Angka Dinamik dalam JSON menggunakan Newtonsoft.Json.Net?
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.
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.
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.
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.
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!