Heim >Backend-Entwicklung >C++ >Wie kann ich Wörterbücher in der JSON-Serialisierung mithilfe von Json.Net reduzieren?

Wie kann ich Wörterbücher in der JSON-Serialisierung mithilfe von Json.Net reduzieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-17 11:16:13910Durchsuche

How Can I Flatten Dictionaries in JSON Serialization Using Json.Net?

Verwendung von Json.Net zum Reduzieren von Wörterbüchern in der JSON-Serialisierung

Bei der Objektserialisierung ist es manchmal notwendig, das Wörterbuch in die JSON-Darstellung des übergeordneten Objekts zu reduzieren. In Json.Net veranschaulicht dies 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>

Das Ziel besteht darin, das Objekt in den folgenden JSON zu serialisieren:

<code>{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>

In Json.Net 5.0.5 und höher kann dies durch die Verwendung des [JsonExtensionData]-Attributs für das Wörterbuchattribut erreicht werden:

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

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

Mit dieser Änderung werden die Schlüssel und Werte des Wörterbuchs als Teil des übergeordneten Objekts serialisiert. Diese Funktionalität ist bidirektional; alle JSON-Eigenschaften, die nicht mit Klassenmitgliedern übereinstimmen, werden während der Deserialisierung im Wörterbuch gespeichert. Dieser Ansatz vereinfacht die Serialisierung und Deserialisierung von Objekten, die verschachtelte Wörterbücher enthalten.

Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher in der JSON-Serialisierung mithilfe von Json.Net reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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