Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyahserialisasikan Hartanah secara Selektif dalam JSON.NET Sambil Mengekalkan Keserasian?
Penyahserialisasian atribut terpilih dalam JSON.NET
Sambil mengekalkan keserasian JSON, anda mungkin mahu menukar sifat bersiri daripada enum kepada kelas. JSON.NET menyediakan beberapa cara untuk menangani keperluan ini:
Kaedah 1: Kaedah ShouldSerialize
JSON.NET menyediakan kaedah ShouldSerialize. Anda boleh menghalang kemasukannya dengan mencipta kaedah ShouldSerializePropertyName di mana PropertyName ialah harta yang akan dikecualikan daripada penyirian. Contohnya:
<code class="language-csharp">public class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; // 从序列化中排除 ObsoleteSetting } }</code>
Kaedah 2: Gunakan JObject untuk mengendalikan
Daripada menggunakan JsonConvert.SerializeObject, tukar objek Config kepada objek JSON (JObject), alih keluar sifat yang diperlukan dan sirikan JObject yang terhasil:
<code class="language-csharp">var jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); var json = jo.ToString();</code>
Kaedah 3: Pengecualian berasaskan atribut
Memohon [JsonIgnore] pada sifat sasaran memastikan ia dikecualikan daripada penyirian. Walau bagaimanapun, untuk menyahsiri harta itu, buat penetap peribadi dengan nama harta yang sama dan gunakan [JsonProperty] padanya. Contohnya:
<code class="language-csharp">public class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingSetter { set { ObsoleteSetting = value; } } }</code>
Dengan menggunakan teknologi ini, anda boleh mengawal pensirilan dan penyahsirilan sifat secara terpilih, memastikan keserasian dengan konfigurasi JSON sedia ada sambil menampung perubahan harta benda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahserialisasikan Hartanah secara Selektif dalam JSON.NET Sambil Mengekalkan Keserasian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!