Rumah > pembangunan bahagian belakang > C++ > Bagaimana Saya Boleh Memelihara Kunci Kamus Semasa Mensiri dengan Json.Net?

Bagaimana Saya Boleh Memelihara Kunci Kamus Semasa Mensiri dengan Json.Net?

Linda Hamilton
Lepaskan: 2025-01-17 11:06:14
asal
832 orang telah melayarinya

How Can I Preserve Dictionary Keys When Serializing with Json.Net?

Cara mengekalkan kunci kamus dalam siri Json.Net

Json.Net ialah perpustakaan bersiri yang biasa digunakan, tetapi apabila mensiri objek yang mengandungi kamus, anda mungkin menghadapi masalah tentang cara mengekalkan kunci kamus.

Mari kita lihat contoh:

<code class="language-c#">public class Test
{
    public string X { get; set; }
    public Dictionary<string, string> Y { get; set; }
}</code>
Salin selepas log masuk

Andaikata anda ingin mensirikan objek ini ke dalam format JSON berikut:

<code class="language-json">{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>
Salin selepas log masuk

Di sini, kekunci kamus ("key1" dan "key2") hendaklah disertakan secara eksplisit dalam output JSON.

Gunakan atribut JsonExtensionData untuk mengekalkan kamus

Jika menggunakan Json.Net 5.0.5 atau lebih tinggi, terdapat penyelesaian mudah. Kamus boleh dipromosikan sebagai sebahagian daripada perwakilan bersiri objek induk dengan menggunakan atribut [JsonExtensionData]. Hanya gunakan atribut pada atribut kamus:

<code class="language-c#">public class Test
{
    public string X { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}</code>
Salin selepas log masuk

Dengan pelarasan ini, pasangan nilai kunci kamus akan disepadukan dengan lancar ke dalam perwakilan JSON objek induk. Selain itu, mekanisme ini berfungsi dalam kedua-dua arah, membenarkan sifat JSON lain yang tidak memetakan terus kepada ahli kelas untuk dinyahsiri ke dalam kamus.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Memelihara Kunci Kamus Semasa Mensiri dengan Json.Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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