Warum arbeitet JSON.NET beim Deserialisieren nicht mit Vererbung?

9

Ich deserialisiere die JSON-Zeichenfolge zum root-Objekt, indem ich die folgende Klasse verwende, die gut funktioniert.

%Vor%

...................................

%Vor%

Aber wenn ich das root-Objekt verallgemeinere, indem ich die Elternklasse erstelle und dann von ihr erben soll, dann bekomme ich null nach der Deserialisierung !!!!

%Vor%

..............................................

%Vor%     
Simsons 12.09.2012, 05:18
quelle

2 Antworten

4

Es ist ziemlich einfach und ohne Unterstützung von json.net, Sie müssen nur die folgenden JsonSettings beim Serialisieren und Deserialisieren verwenden:

%Vor%

und für Deserializing verwende den folgenden Code:

%Vor%

Notieren Sie sich den JsonSerializerSettings-Objektinitialisierer, der für Sie wichtig ist.

    
Sunil S 14.01.2014 10:06
quelle
0

Angenommen, die json-Zeichenfolge sieht wie folgt aus

%Vor%

Ich finde es funktioniert gut mit mir. Ich benutze derzeit Json.net 4.5 r11

Wenn Sie ein serialisiertes Objekt sind, wenn die Klassenstruktur wie

aussieht %Vor%

Und die JSON-Zeichenfolge sieht ungefähr wie folgt aus

%Vor%

Und jetzt verwenden Sie die neue Struktur zum Deserialisieren, dann erhalten Sie null movieResponse , da die Eigenschaft in der neuen Struktur geändert wird.

Um dieses Problem zu lösen, erstellen Sie einen neuen benutzerdefinierten jsonConverter, der von JsonConverter stammt, und erstellen Sie Ihr Objekt programmatisch. Bitte werfen Sie einen Blick auf den Link json-deserialization-with-jsonnet-class um eine Idee zu bekommen. Falls Sie bereits darüber Bescheid wissen und das Problem weiterhin besteht, aktualisieren Sie bitte die Frage mit mehr Details wie Json.net-Version, JSON-String, komplette Klassenstruktur usw.

HTH.

    
keyr 05.12.2012 10:44
quelle

Tags und Links