Ich weiß, dass es zu diesem Problem ähnliche Artikel gibt, lesen Sie diese jedoch sorgfältig, bevor Sie sie als Duplikat markieren.Fehler beim Deserialisieren des JSON-Objekts zur Karte
Ich habe eine Textzeichenfolge, die ich in eine JSON-Zeile/Instanz und dann in eine Java-Map-Variable konvertieren möchte, so dass ich auf jedes Attribut einzeln zugreifen kann. Das ist mein string:
{"S3_r5_Ahf": "0.00025", "S15_r6_Alf": "-0.00514", "S6_r4_Alf": "-0.00126", "S12_r9_Alf": "-0.00595", "S13_r8_Ahf": "0.00018", "S1_r9_Alf": "-0.00385", "S8_r10_Alf": "-0.00849" }
die Gson Bibliothek verwenden ich die Zeichenfolge in ein Json-Objekt umgewandelt:
Gson gson = new Gson();
String json = gson.toJson(s);
Und das funktioniert gut, die Ausgabe Wesen:
"{\"S3_r5_Ahf\": \"0.00025\", \"S15_r6_Alf\": \"-0.00514\", \"S6_r4_Alf\": \"-0.00126\", \"S12_r9_Alf\": \"-0.00595\", \"S13_r8_Ahf\": \"0.00018\", \"S1_r9_Alf\": \"-0.00385\", \"S8_r10_Alf\": \"-0.00849\"
Das Problem ist, wenn ich versuche, es in eine Karte zu konvertieren, indem ich verwende:
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> retMap = gson.fromJson(json,type);
Wenn ich versuche, RetMap zu drucken, erhalte ich den Fehler: Der JsonDeserializer MapTypeAdapter konnte das zu kopierende Json-Objekt nicht deserialisieren.
Was mache ich falsch? Danke.
Die Zeichenfolge, die Sie zum ersten Mal verwendet ist bereits JSON, das zweite ist ein JSON entkam es – Hacketo