Deserialize-Objekt über JsonConvert und benutzerdefinierten TypeConverter [duplizieren]

8

Ich habe ein einfaches DTO

%Vor%

Und ich habe ProxyDto mit TypeConverterAttribute :

%Vor%

Hier ist die Implementierung von SimpleConvert :

%Vor%

Auch ich habe einfach Json für DTO:

%Vor%

Wenn ich versuche, dieses Objekt via Proxy zu deserialisieren

%Vor%

es schlägt mit Ausnahme 'Newtonsoft.Json.JsonSerializationException'

fehl
  

Das aktuelle JSON-Objekt (z. B. {"name": "value"}) kann nicht in den Typ 'Detect_Console_Application_Exit2.ProxyDto'1 [Detect_Console_Application_Exit2.SimpleDto]' deserialisiert werden, da der Typ zur korrekten Deserialisierung einen JSON-Zeichenfolgenwert benötigt.       Um diesen Fehler zu beheben, ändern Sie entweder den JSON in einen JSON-Zeichenfolgenwert oder ändern Sie den deserialisierten Typ so, dass es ein normaler .NET-Typ ist (z. B. kein primitiver Typ wie Ganzzahl, kein Sammlertyp wie Array oder Liste), der deserialisiert werden kann von einem JSON-Objekt. JsonObjectAttribute kann auch zum Typ hinzugefügt werden, um die Deserialisierung von einem JSON-Objekt zu erzwingen.       Pfad 'Status', Zeile 1, Position 10.

Aber wenn mein Json Json entkommen ist:

%Vor%

es funktioniert gut. Ich verstehe nicht, warum das erste JSON-Objekt nicht korrekt ist. Kannst du mir helfen?

Aktualisieren

Hier ist ToJson Methode:

%Vor%     
Maxim Goncharuk 04.12.2015, 13:16
quelle

1 Antwort

0

Da @dbc sagte, dass es nur Objekte konvertiert, die von JsonConverter erben, ist unten der Code, den sie verwenden, der Standard-Serializer basiert auf dem Konverterparameter. Sie sollten von JsonConverter anstelle von TypeConverter

erben %Vor%     
Zinov 04.12.2015 16:37
quelle

Tags und Links