Android: Versuch zu serialisieren ... Vergessen, einen Typ-Adapter zu registrieren? "

8

Wie Sie HashMap mithilfe von Gson in JSON konvertieren.

%Vor%

Ich bekomme die nächste Ausnahme

  

Versuch, java.lang.Class: java.lang.String zu serialisieren. Vergaß zu   einen Typ Adapter registrieren?

    
Ilya Gazman 21.03.2015, 21:13
quelle

2 Antworten

4

Sie müssen Ihren eigenen benutzerdefinierten Serializer für ClassData implementieren und ihn dann bei Ihrem Gson Builder registrieren.

%Vor%

Ausgabe: {"key": "key"}

Lesen Sie mehr: Ссылка

    
Andyccs 21.03.2015, 21:56
quelle
6

Mein Ansatz funktioniert für Gson 2.3.1 mit Java 1.7, kann nicht garantieren, dass es mit Android funktioniert.

Das Problem liegt in der Variablen classType , da Gson den Typ Class nicht so verarbeiten kann, wie er ist. Also müssen wir einen TypeAdapter für die Klasse erstellen.

%Vor%

Damit es funktioniert, benötigen Sie eine TypeAdapterFactory.

%Vor%

Und registrieren Sie die TypeAdapterFactory zu Ihrem Gson Builder.

%Vor%

AFAIK müssen Sie eine TypeAdapterFactory verwenden. Ein direkt registrierter TypeAdapter

%Vor%

scheint ignoriert zu werden, wenn ein Objekt vom Typ Class gefunden wird.

Gson transformiert sowohl die HashMap - als auch die Java-Klasseninstanzen in JSON-Objekte. Beispiel:

%Vor%     
json1 02.12.2015 14:18
quelle

Tags und Links