Unterklasse mit Json.NET serialisieren

8

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?

    
Adam Spicer 06.07.2012, 18:33
quelle

2 Antworten

4

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.

%Vor%     
Paolo Moretti 06.07.2012, 18:50
quelle
1

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.

    
Kevin Aenmey 06.07.2012 18:49
quelle

Tags und Links