no se puede hacer esto directamente, pero lo hice de una manera loca como a continuación ...
La idea básica es que, primero es necesario convertir HashMap Cadena en Json luego puede deserializar Json utilizando Gson/Genson, etc. en HashMap de nuevo.
@SuppressWarnings("unchecked")
private HashMap<String, Object> toHashMap(String s) {
HashMap<String, Object> map = null;
try {
map = new Genson().deserialize(toJson(s), HashMap.class);
} catch (TransformationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return map;
}
private String toJson(String s) {
s = s.substring(0, s.length()).replace("{", "{\"");
s = s.substring(0, s.length()).replace("}", "\"}");
s = s.substring(0, s.length()).replace(", ", "\", \"");
s = s.substring(0, s.length()).replace("=", "\":\"");
s = s.substring(0, s.length()).replace("\"[", "[");
s = s.substring(0, s.length()).replace("]\"", "]");
s = s.substring(0, s.length()).replace("}\", \"{", "}, {");
return s;
}
aplicación ...
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("Name", "Suleman");
map.put("Country", "Pakistan");
String s = map.toString();
HashMap<String, Object> newMap = toHashMap(s);
System.out.println(newMap);
Mala pregunta, generalmente object-> toString() es una conversión unidireccional. A veces se puede lograr el objeto toString() ->, pero no con todas las clases. Mejor uso objectOutputStream como en alguna respuesta. – iirekm