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
Lepaskan: 2025-01-10 20:04:42
asal
740 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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