2016-07-08 21 views
0

Ich habe eine Zeichenfolge, die ich durch das Drucken einer HashMap in Java erhalten haben:java Reverse hashmap Druck

String a = "{data={field1={field3=value3}, field2={field4=value4, field5=value5}}}" 

Gibt es eine Funktion in Java, die diese Zeichenfolge in eine HashMap analysieren und konvertieren kann. Für diese spezifische Zeichenfolge sollte diese Funktion Map<String, Map<String, Map<String, String>>> zurückgeben.

+3

Warum haben Sie das getan? Wenn Sie Daten serialisieren möchten, ist 'toString' nicht der richtige Weg. –

+0

Ich möchte eine Funktion testen und muss den Inhalt einer Variablen vom Typ Map aus einer anderen Funktion abrufen und damit meine eigene Funktion testen. Wenn ich diese Variable drucke, erhalte ich eine sehr lange Zeichenfolge und möchte, dass ein Parser diese Zeichenfolge an eine Hash-Map zurückgibt, damit ich sie in meiner Testfunktion verwenden kann. –

+1

Warum sollte es überhaupt in eine 'Zeichenfolge' umgewandelt werden? –

Antwort

0

Google Guava-Bibliothek hat ähnliche Parser geschrieben. Link zur Antwort: Convert string representing key-value pairs to Map

+2

Das OP benötigt _nested_ maps, nicht nur eine einfache 'Map'. Dieser Ansatz wird nicht funktionieren. Ich denke, Sie könnten es erweitern, um eine rekursive Auflösung von Karten zu versuchen, die als Werte verschachtelt sind - aber das hört sich einfach nach einer ganzen Dose Würmer an, die niemand öffnen sollte. –

+0

Ja, ich denke du hast Recht. Die Dokumentation zeigt eine 'Map ' Ausgabe. Bei der Verwendung dieser Bibliothek besteht die einzige Möglichkeit darin, einen rekursiven Parser auf den Wertteil des Eintrags zu schreiben. – pikaynu