JSON.NET: Wörterbuch in übergeordnete Objekteigenschaften serialisieren
Bei der Serialisierung mit JSON.NET stellt sich häufig die Frage, wie Objekte mit Wörterbucheigenschaften serialisiert werden. Standardmäßig serialisiert JSON.NET Wörterbücher nicht als Teil des übergeordneten Objekts und ignoriert sie stattdessen. Um dieses Problem zu lösen, werden wir eine Lösung untersuchen, die die Einbeziehung von Wörterbucheigenschaften in die JSON-Darstellung des übergeordneten Objekts ermöglicht.
Stellen Sie sich eine Klasse vor, die eine Zeichenfolgeneigenschaft und eine Wörterbucheigenschaft enthält:
<code>public class Test { public string X { get; set; } public Dictionary<string, string> Y { get; set; } }</code>
Das von uns erwartete JSON-Ausgabeformat ist wie folgt, wobei die Wörterbuchattribute („key1“ und „key2“) direkt im übergeordneten Objekt verschachtelt sind:
<code>{ "X": "value", "key1": "value1", "key2": "value2" }</code>
Um dieses Ergebnis zu erzielen, können wir JSON.NET 5.0.5 oder höher verwenden und das Wörterbuchattribut wie folgt ändern:
<code>[JsonExtensionData] public Dictionary<string, object> Y { get; set; }</code>
Durch die Anwendung des [JsonExtensionData]
-Attributs auf eine Wörterbucheigenschaft weisen wir JSON.NET an, die Schlüssel und Werte des Wörterbuchs als Teil des übergeordneten Objekts zu serialisieren. Darüber hinaus unterstützt dieser Mechanismus die Deserialisierung und stellt so sicher, dass alle JSON-Eigenschaften, die keinen Klassenmitgliedern entsprechen, im erweiterten Datenwörterbuch gespeichert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher als übergeordnete Objekteigenschaften in JSON.NET serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!