Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyahserialisasikan Hartanah secara Selektif dalam JSON.NET Sambil Mengekalkan Keserasian?

Bagaimanakah Saya Boleh Menyahserialisasikan Hartanah secara Selektif dalam JSON.NET Sambil Mengekalkan Keserasian?

Linda Hamilton
Linda Hamiltonasal
2025-01-10 20:04:42697semak imbas

How Can I Selectively Deserialize Properties in JSON.NET While Maintaining Compatibility?

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!

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