2017-09-15 1 views
0

Wenn serialisiert JSON mit DefaultValueHandling.Ignore, so dass die einzigen serialisierten Eigenschaften nicht standardmäßige Werte sind, ist es immer noch möglich, eine oder mehrere Eigenschaften immer serialisieren? Dies wäre eine nette Funktion, wenn Sie ein JSON-Dokument haben, das für Menschen lesbar oder editierbar ist und nur eine oder zwei Eigenschaften wirklich erkennbar sein müssen, während es für viele andere immer noch angezeigt wird, wenn sie tatsächlich gesetzt sind.Erzwingen Sie einzelne JSON-Eigenschaft immer serialisieren, während DefaultValueHandling Ignorieren

Antwort

1

Sie können auch specify the default value handling for every property mit dem JsonProperty Attribut. Und wenn Sie global und pro Eigenschaft auch die Vorgabewertbehandlung angegeben haben, hat der eigene attributierte Wert der Eigenschaft Vorrang vor der globalen Einstellung.

[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)] 
    public bool SomeFlagYouAlwaysWantToSee { get; set; } 
+1

Um Ihre Antwort mehr komplett machen, könnten Sie einen Link auf die [Dokumentation] umfassen (https://www.newtonsoft.com/json/help/html/P_Newtonsoft_Json_JsonPropertyAttribute_DefaultValueHandling.htm) oder ein Codebeispiel zeigt, wie '[JsonProperty (DefaultValueHandling = DefaultValueHandling. \t Include)]' wird angewendet. – dbc

+0

@dbc Danke für den Vorschlag, wird es im Hinterkopf behalten –

+0

Danke @AkosNagy! –

Verwandte Themen