bạn không thể làm điều này trực tiếp nhưng tôi đã làm điều này một cách điên như sau ...
Ý tưởng cơ bản là, 1 bạn cần phải chuyển đổi HashMap String vào Json sau đó bạn có thể deserialize Json sử dụng Gson/Genson vv vào HashMap một lần nữa.
@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;
}
thực hiệ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);
Nguồn
2014-06-02 12:37:21
Câu hỏi không đúng, thường là đối tượng-> toString() là một chuyển đổi một chiều. Đôi khi toString() -> đối tượng có thể đạt được, nhưng không phải với tất cả các lớp. Sử dụng tốt hơn objectOutputStream như trong một số câu trả lời. – iirekm