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
Mary-Kate Olsenasal
2025-01-07 12:39:42726semak imbas

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; }
}

Menyahsiri JSON Data

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

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

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();
}

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"
        }
    }
}

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

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