Json.net を使用して、プロパティをシリアル化して戻さずに逆シリアル化します
Json.net を使用すると、C# オブジェクト プロパティのシリアル化および逆シリアル化プロセスを制御できます。この記事では、JSON ファイルから特定のプロパティを逆シリアル化するが、JSON ファイルにシリアル化して戻さないシナリオについて説明します。これを実現する方法は次のとおりです:
方法 1: ShouldSerialize メソッドを使用する
Json.net は、ShouldSerialize メソッドを使用した条件付きシリアル化をサポートしています。シリアル化中に無視したいプロパティの場合は、Boolean ShouldSerializeBlah() メソッドをクラスに追加します。Blah はプロパティ名です。このメソッドは常に false を返す必要があります。
例:
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
方法 2: JObject を使用して JSON を操作する
JsonConvert.SerializeObject に依存する代わりに、構成オブジェクトを JObject に逆シリアル化できます。 JSON に書き込む前に、JSON から不要な属性を削除します:
<code class="language-csharp">JObject jo = JObject.FromObject(config); // 从其父级中删除“ObsoleteSetting” JProperty jo["ObsoleteSetting"].Parent.Remove(); json = jo.ToString();</code>
方法 3: 属性を使用する
もう 1 つの方法は、属性を使用することです:
これは例です:
<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>
以上がJson.netを使用してプロパティをシリアル化せずにJSON内のプロパティを逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。