Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahserialisasikan JSON dengan Kekunci Objek Kanak-kanak Dinamik dalam C#?

Bagaimana untuk Menyahserialisasikan JSON dengan Kekunci Objek Kanak-kanak Dinamik dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-07 12:39:42
asal
780 orang telah melayarinya

How to Deserialize JSON with Dynamic Child Object Keys in C#?

Menyahsiri Objek Kanak-kanak dengan Kekunci Dinamik

Dalam senario tertentu, anda mungkin menghadapi data JSON dengan kunci dinamik untuk objek kanak-kanak. Untuk menyahsiri data ini dengan berkesan, pertimbangkan untuk menggunakan kamus dan bukannya kelas tradisional.

Menggunakan Kamus untuk Penyahserikatan

Daripada membuat kelas tradisional untuk setiap objek kanak-kanak, anda boleh menggunakan a Kamus untuk mewakili data. Setiap kunci dalam kamus mewakili kunci dinamik dan setiap nilai ialah objek jenis T, yang sepatutnya mewakili struktur data objek kanak-kanak.

Mentakrifkan Kelas

Untuk contoh ini, takrifkan kelas seperti berikut:

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; }
}
Salin selepas log masuk

Menyahsiri JSON Data

Untuk menyahsiri data JSON ke dalam kelas RootObject anda, gunakan kod berikut:

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
Salin selepas log masuk

Mengakses Objek Kanak-kanak

Sekali deserialized, anda boleh mengakses objek kanak-kanak secara terus melalui kamus kunci:

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    Console.WriteLine($"key: {key}");
    Console.WriteLine($"name: {user.name}");
    Console.WriteLine($"state: {user.state}");
    Console.WriteLine($"id: {user.id}");
    Console.WriteLine();
}
Salin selepas log masuk

Contoh

Pertimbangkan data JSON berikut:

{
    "users" : {
        "100034" : {
            "name"  : "tom",
            "state" : "WA",
            "id"    : "cedf-c56f-18a4-4b1"
        },
        "10045" : {
            "name"  : "steve",
            "state" : "NY",
            "id"    : "ebb2-92bf-3062-7774"
        },
        "12345" : {
            "name"  : "mike",
            "state" : "MA",
            "id"    : "fb60-b34f-6dc8-aaf7"
        }
    }
}
Salin selepas log masuk

Menggunakan kod yang disediakan, anda boleh menyahsiri data dan akses setiap objek kanak-kanak, menghasilkan output berikut:

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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyahserialisasikan JSON dengan Kekunci Objek Kanak-kanak Dinamik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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