Ich versuche, Json.NET zu verwenden, um eine Unterklasse zu serialisieren. Der resultierende JSON enthält die serialisierten Eigenschaften für die Oberklasse, aber nicht die Eigenschaften für das Unterklassenobjekt.
Dies scheint mit einem Problem zu tun zu haben, das ich hier auf SO gefunden habe. Aber ein JsonConverter
zu schreiben, erscheint als Overkill.
Beispielunterklasse:
%Vor%Beispiel für die Serialisierung:
%Vor%Resultierendes json:
%Vor%Ich habe erwartet, dass dies zu folgendem Ergebnis führt:
%Vor%Vielleicht verwende ich gerade nicht die richtige Konfiguration beim Serialisieren. Hat jemand irgendwelche Vorschläge?
Laut Dokumentation :
.NET-Listen (Typen, die von
IEnumerable
erben) und .NET-Arrays sind in JSON-Arrays konvertiert. Da JSON-Arrays nur einen Bereich von Werte und keine Eigenschaften, weitere Eigenschaften und Felder deklariert in .NET-Sammlungen sind nicht serialisiert .
Also, Unterklasse List<T>
, fügen Sie einfach eine zweite Eigenschaft hinzu.
Hier sind meine Gedanken dazu. Ich würde denken, dass Ihre erwarteten Ergebnisse mit einer Klasse wie dieser konsistenter wären:
%Vor% Ich würde nicht erwarten, ein Items
-Element im serialisierten Ergebnis für MySubclass : List<string>
zu sehen, da es keine Items-Eigenschaft für List
oder für MySubclass
gibt.
Da Ihre Klasse MySubclass
eigentlich eine Liste von Strings ist, würde ich raten (und ich rate nur hier), dass die SerializeObject
-Methode nur durch Ihr Objekt iteriert und eine Liste von Strings serialisiert.