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>
Andaikata anda ingin mensirikan objek ini ke dalam format JSON berikut:
<code class="language-json">{ "X" : "value", "key1": "value1", "key2": "value2" }</code>
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>
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!