Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahseri JSON Bersarang dengan Kekunci Dinamik ke dalam Kelas C#?

Bagaimana untuk Menyahseri JSON Bersarang dengan Kekunci Dinamik ke dalam Kelas C#?

Barbara Streisand
Lepaskan: 2025-01-19 21:51:11
asal
466 orang telah melayarinya

How to Deserialize Nested JSON with Dynamic Keys into C# Classes?

Derialisasikan JSON bersarang kepada kelas C#

Deserialisasi respons JSON ke dalam kelas C# Perkara utama adalah untuk memadankan struktur kelas dengan keseluruhan data JSON. Berikut ialah penyelesaian tentang cara menyahsiri JSON yang diberikan:

Struktur JSON:

<code>{
    "results": {
        "jobcodes": {
            "1": { ... },
            "2": { ... },
            ...
        }
    }
}</code>
Salin selepas log masuk

Soalan:

Anda tidak mengambil kira kekunci dinamik ("1" dan "2") dalam objek "kod kerja" bersarang.

Penyelesaian:

Untuk mengendalikan objek dengan kekunci dinamik, gunakan Dictionary<string, JobCode>:

class Results
{
    [JsonProperty("jobcodes")]
    public Dictionary<string, JobCode> JobCodes { get; set; }
}
Salin selepas log masuk

Lengkapkan struktur kelas:

class RootObject
{
    [JsonProperty("results")]
    public Results Results { get; set; }
}

class JobCode
{
    [JsonProperty("_status_code")]
    public string StatusCode { get; set; }
    [JsonProperty("_status_message")]
    public string StatusMessage { get; set; }
    [JsonProperty("id")]
    public string Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}
Salin selepas log masuk

Penyahserikatan:

Nyahserialisasikan JSON kepada kelas RootObject:

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

Keputusan:

Anda boleh mendapatkan obj.Results.JobCodes.Values dengan melawati List<JobCode>. Setiap JobCode akan mempunyai nilai atribut yang sepadan daripada JSON.

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri JSON Bersarang dengan Kekunci Dinamik ke dalam Kelas 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