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%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:
Notieren Sie sich den JsonSerializerSettings-Objektinitialisierer, der für Sie wichtig ist.
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.