Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh deserialize JSON dengan nama harta dinamik sebagai pengecam ke dalam objek C# yang sangat ditaip?

Bagaimanakah saya boleh deserialize JSON dengan nama harta dinamik sebagai pengecam ke dalam objek C# yang sangat ditaip?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-30 00:01:09864semak imbas

How Can I Deserialize JSON with Dynamic Property Names as Identifiers into a Strongly Typed C# Object?

json mencipta objek C# jenis yang kuat dengan nama atribut sebagai pengenal

Penerangan Masalah

Apabila cuba membuat objek C# jenis yang kuat dari data JSON, penulis menghadapi masalah memproses nama atribut dalam objek JSON. Kod sedia ada cuba menggunakan struktur kelas berlapis untuk bersiri fail JSON, tetapi nama atribut (logo sesi) tidak diiktiraf sebagai atribut objek.

penyelesaian

Untuk menyelesaikan masalah ini, penulis perlu mengubah suai objek akar dalam kelas C# sebagai

. Perubahan ini akan membolehkan nama atribut objek JSON dipetakan sebagai kunci kamus.

Contoh kod

Dictionary<string, SessionPerformanceStats>

atau, jika nama atribut dalam objek JSON sentiasa bernombor, kunci kamus boleh ditakrifkan sebagai panjang dan rumit:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, SessionPerformanceStats>>(theJsonResponse);</code>

Penerangan Tambahan

Matlamat pengubahsuaian ini adalah untuk membolehkan serialisasi objek JSON yang betul ke dalam kamus. Kaedah ini membolehkan nama atribut dalam objek JSON sebagai kunci kamus untuk memetakan struktur objek JSON dengan berkesan ke kamus C#. Ini menyelesaikan masalah bahawa pengecam sesi tidak diiktiraf sebagai atribut objek.
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh deserialize JSON dengan nama harta dinamik sebagai pengecam 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