Heim > Backend-Entwicklung > C++ > Wie kann ich Wörterbucheigenschaften in die Serialisierung übergeordneter Objekte mit Json.Net einbeziehen?

Wie kann ich Wörterbucheigenschaften in die Serialisierung übergeordneter Objekte mit Json.Net einbeziehen?

DDD
Freigeben: 2025-01-17 11:26:09
Original
772 Leute haben es durchsucht

How Can I Include Dictionary Properties in Parent Object Serialization with Json.Net?

Erweitern Sie die Serialisierung übergeordneter Objekte mit Json.Net um Wörterbuchattribute

Wenn die Objektserialisierung komplexe Datenstrukturen wie Wörterbücher umfasst, kann es erforderlich sein, diese Eigenschaften in die JSON-Darstellung des übergeordneten Objekts aufzunehmen.

Zum Beispiel eine Klasse, die ein Wörterbuch enthält:

<code>public class Test
{
    public string X { get; set; }

    public Dictionary<string, string> Y { get; set; }
}</code>
Nach dem Login kopieren

Die erwartete JSON-Ausgabe ist:

<code>{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>
Nach dem Login kopieren

wobei die Wörterbuchschlüssel als Teil des übergeordneten Objekts enthalten sind.

Für Json.Net 5.0.5 und höher besteht eine einfache Lösung darin, das [JsonExtensionData]-Attribut zu verwenden:

<code>public class Test
{
    public string X { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}</code>
Nach dem Login kopieren

Wenn ein Wörterbuch mit diesem Attribut markiert ist, werden seine Schlüssel und Werte während der Serialisierung in die JSON-Darstellung des übergeordneten Objekts aufgenommen. Dieser Ansatz erstreckt sich auch auf die Deserialisierung, bei der nicht übereinstimmende JSON-Attribute in einem Wörterbuch gespeichert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbucheigenschaften in die Serialisierung übergeordneter Objekte mit Json.Net einbeziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage