Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menafikan objek JSON dengan ID angka sebagai kunci ke dalam objek C# yang sangat ditaip?

Bagaimanakah saya boleh menafikan objek JSON dengan ID angka sebagai kunci ke dalam objek C# yang sangat ditaip?

Susan Sarandon
Susan Sarandonasal
2025-01-30 00:12:09646semak imbas

How Can I Deserialize a JSON Object with Numeric IDs as Keys into a Strongly Typed C# Object?

Menukar objek JSON dengan ID sebagai nama kepada jenis C# objek yang kuat

Apabila objek JSON dengan kekunci ID digital bersiri ke dalam objek jenis C# yang kuat, ia akan menghadapi cabaran. Pertimbangkan tindak balas JSON berikut:

Untuk membuat objek jenis yang kuat, anda telah menentukan kelas "PollsandSurveySstatistics", "AtmenceStatistics" dan "Sessionperformancestats". Walau bagaimanapun, masalahnya ialah struktur teratas objek C# anda "WebinarperformanceStats".
<code>{
    "5234592":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    },
    "5235291":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    }
}</code>

Untuk menyelesaikan masalah ini, sila ubah objek akar dalam C# ke kamus:

Kaedah ini membolehkan JSON.NET untuk menetapkan objek JSON ke dalam kamus, di mana nombor ID digunakan sebagai kunci. Untuk memastikan jenis rawatan yang betul, anda boleh memperbaiki pernyataan seperti berikut:
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

Pengubahsuaian ini memastikan bahawa kunci ID dijelaskan sebagai integer yang panjang. Dengan menggunakan kamus sebagai objek root, anda boleh menggunakan kekunci ID untuk mengakses statistik prestasi sesi.
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh menafikan objek JSON dengan ID angka sebagai kunci ke dalam objek C# yang sangat ditaip?. 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