Heim >Backend-Entwicklung >C++ >Wie serialisiere ich JSON-Eigenschaften als Werte statt als Objekte?
JSON-Eigenschaften als Werte serialisieren
Bei der Verwendung von JSON-Darstellungen in Ihrem Code kann es vorkommen, dass Sie eine Eigenschaft als serialisieren möchten Wert und nicht Gegenstand. Dadurch soll ein prägnanteres und gewünschteres JSON-Format erreicht werden.
Betrachten wir das folgende Beispiel mit den Klassen Car und StringId:
class Car { public StringId Id { get; set; } public string Name { get; set; } } class StringId { public string Value { get; set; } } // Desired representation { "Id": "someId", "Name": "Ford" } // Default (undesired) representation { "Id" : { "Value": "someId" }, "Name": "Ford" }
Die gewünschte JSON-Darstellung eliminiert das verschachtelte Objekt für Id und zeigt seinen Wert direkt an. Um dies zu erreichen, können wir zwei Ansätze anwenden:
Verwendung eines TypeConverters
Durch die Implementierung eines TypeConverters für StringId verwendet JSON.NET diesen automatisch zum Konvertieren der Eigenschaft eine Zeichenfolge:
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // Implementation omitted for brevity... }
Mit a JsonConverter
Bei diesem Ansatz müssen Sie bestimmte JSON.NET-Attribute zu Ihrer StringId-Klasse hinzufügen:
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // Implementation omitted for brevity... }
In beiden Fällen liest und schreibt der Konverter den Wert direkt, was zu … die gewünschte JSON-Darstellung:
{ "Id": "someId", "Name": "Ford" }
Das obige ist der detaillierte Inhalt vonWie serialisiere ich JSON-Eigenschaften als Werte statt als Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!