Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahsiri Harta dalam JSON Tanpa Mensirikannya Kembali Menggunakan Json.net?
Gunakan Json.net untuk menyahsiri hartanah tanpa mensirikannya kembali
Json.net membolehkan anda mengawal proses bersiri dan penyahserikatan sifat objek C#. Artikel ini meneroka senario di mana anda ingin menyahsiri sifat tertentu daripada fail JSON, tetapi tidak mensirikannya kembali ke fail JSON. Berikut ialah beberapa cara untuk mencapai matlamat ini:
Kaedah 1: Gunakan kaedah ShouldSerialize
Json.net menyokong siri bersyarat menggunakan kaedah ShouldSerialize. Untuk sifat yang anda ingin abaikan semasa bersiri, tambahkan kaedah Boolean ShouldSerializeBlah() pada kelas anda, dengan Blah ialah nama sifat. Kaedah ini harus sentiasa mengembalikan palsu.
Contohnya:
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
Kaedah 2: Gunakan JObject untuk mengendalikan JSON
Anda boleh menyahsiri objek konfigurasi kepada JObject dan bukannya bergantung pada JsonConvert.SerializeObject. Alih keluar atribut yang tidak diingini daripada JSON sebelum menulis ke JSON:
<code class="language-csharp">JObject jo = JObject.FromObject(config); // 从其父级中删除“ObsoleteSetting” JProperty jo["ObsoleteSetting"].Parent.Remove(); json = jo.ToString();</code>
Kaedah 3: Gunakan atribut
Cara lain ialah menggunakan atribut:
Berikut ialah contoh:
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { // get intentionally omitted here set { ObsoleteSetting = value; } } public Bang ReplacementSetting { get; set; } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Menyahsiri Harta dalam JSON Tanpa Mensirikannya Kembali Menggunakan Json.net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!