Heim >Backend-Entwicklung >C++ >Wie kann ich Eigenschaften mit Json.Net von der Serialisierung ausschließen?
Serialisierung mit Json.Net-Ausschlussattributen
Beim Serialisieren von Objekten mit Json.Net sind möglicherweise einige Eigenschaften beim Deserialisieren erforderlich, beim Serialisieren jedoch nicht. In diesem Artikel werden verschiedene Möglichkeiten zur Implementierung dieses Szenarios untersucht:
Methode 1: Bedingte Serialisierung
Json.Net unterstützt die Methode ShouldSerialize, die die Serialisierung bedingt steuern kann. Definieren Sie die Methode ShouldSerialize für die erforderlichen Eigenschaften und legen Sie fest, dass sie „false“ zurückgibt:
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
Methode 2: Verwenden Sie JObject, um JSON zu betreiben
Nachdem Sie das Objekt in JObject deserialisiert haben, entfernen Sie die Eigenschaften manuell, bevor Sie es serialisieren:
<code class="language-csharp">JObject jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); string json = jo.ToString();</code>
Methode 3: Attribute verwenden
a. Eigenschaften mit privaten Settern ignorieren
Verwenden Sie das Attribut [JsonIgnore]
, um Attribute für die Serialisierung auszuschließen. Verwenden Sie [JsonProperty]
, um sich bei alternativen privaten Immobiliensettern zu bewerben:
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { set { ObsoleteSetting = value; } } }</code>
b. Verwenden Sie öffentliche Setter, um Eigenschaften zu ignorieren
Alternativ können Sie einen öffentlichen Property-Setter mit [JsonProperty]
verwenden und seinen Getter mit [JsonIgnore]
ausschließen:
<code class="language-csharp">class Config { [JsonProperty("ObsoleteSetting")] public Fizz ObsoleteSetting { set; private get; } }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Eigenschaften mit Json.Net von der Serialisierung ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!