Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyahseri JSON dengan Kekunci Dinamik dalam C#?

Bagaimanakah Saya Boleh Menyahseri JSON dengan Kekunci Dinamik dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-17 10:27:09565semak imbas

How Can I Deserialize JSON with Dynamic Keys in C#?

Mengendalikan penyahserialisasian JSON bagi kunci dinamik dalam C#

Apabila memproses data JSON, menemui kunci dinamik boleh menyebabkan cabaran penyahserikatan. Pertimbangkan rentetan JSON berikut:

<code class="language-json">{
    "daily": {
        "1337990400000": 443447,
        "1338076800000": 444693,
        "1338163200000": 452282,
        "1338249600000": 462189,
        "1338336000000": 466626
    }
}</code>

Dalam rentetan ini, kunci "harian" adalah statik, tetapi kunci pendasar adalah dinamik dan tidak boleh diramalkan semasa penyahserikatan. Untuk menyelesaikan masalah ini, kita boleh memanfaatkan kuasa objek dinamik.

Menggunakan kelas JavaScriptSerializer, kita boleh mencipta objek dinamik seperti yang ditunjukkan di bawah:

<code class="language-csharp">dynamic deser = new JavaScriptSerializer().Deserialize<dynamic>(val);</code>

Penyahserialisasian ini akan mencipta objek dinamik deser yang boleh mengakses sifat JSON. Untuk mengakses data harian kita boleh menggunakan pernyataan berikut:

<code class="language-csharp">dynamic justDaily = deser["daily"];</code>
Objek

justDaily kini mewakili data harian dan kunci dinamiknya boleh diakses. Untuk mengulangi kekunci dan nilainya, kita boleh menggunakan kod berikut:

<code class="language-csharp">foreach (string key in justDaily.Keys)
    Console.WriteLine(key + ": " + justDaily[key]);</code>

Ini akan mengeluarkan kunci dinamik dan nilai sepadannya. Dengan menggunakan objek dinamik, kami boleh menyahsiri data JSON dengan cekap walaupun apabila kunci dinamik ditemui.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahseri JSON dengan Kekunci 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