Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik Menggunakan Kamus dalam C#?

Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik Menggunakan Kamus dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-07 12:47:411033semak imbas

How to Deserialize JSON with Dynamic Keys Using Dictionaries in C#?

Nyahsiri JSON dengan Kekunci Dinamik Menggunakan Kamus

Apabila bekerja dengan data JSON yang mengandungi objek dengan nama kunci dinamik, ia menjadi mencabar untuk mengakses terus sifat objek. Ini kerana penyirian objek biasa memerlukan sifat kelas yang dipratentukan.

Untuk mengatasinya, kita boleh menggunakan Kamus struktur, di mana rentetan mewakili nama kunci dinamik, dan T ialah kelas yang memegang data objek. Pendekatan ini membolehkan penyahserialisasian fleksibel objek dengan sifat yang berbeza-beza.

class RootObject
{
    public Dictionary<string, User> users { get; set; }
}

class User
{
    public string name { get; set; }
    public string state { get; set; }
    public string id { get; set; }
}

Menggunakan kelas di atas dan data JSON yang diberikan:

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);

Kami kini boleh mengakses dan mengulangi yang dinyahsiri objek:

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    // Access user properties here
}

Output:

key: 10045
name: steve
state: NY
id: ebb2-92bf-3062-7774

key: 12345
name: mike
state: MA
id: fb60-b34f-6dc8-aaf7

key: 100034
name: tom
state: WA
id: cedf-c56f-18a4-4b1

Dengan memanfaatkan kamus, kami boleh menyahsiri data JSON dengan berkesan dengan nama kunci dinamik dan mengakses sifat objek dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik Menggunakan Kamus dalam C#?. 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