toString()方法會生成一種用於記錄和調試的格式,而不是用於序列化和反序列化。
我建議將您的對象轉換爲json格式(其他格式,如xml也可以),並使用諸如「Gson」之類的json庫進行轉換。
例子,你如何可以將對象轉換成JSON字符串:
Gson gson = new Gson();
String json = gson.toJson(myObject);
比如你可以怎麼JSON字符串轉換回對象,請參閱: creating Hashmap from a JSON String
更新:這裏有一個第一部分的完整示例:
List<HashMap<Map<String, Object>, Map<String, Object>>> myObject = new ArrayList<>();
HashMap<Map<String, Object>, Map<String, Object>> hashMap1 = new HashMap<>();
myObject.add(hashMap1);
Map<String, Object> key1 = new HashMap<>();
key1.put("key1", "keyValue1");
Map<String, Object> value1 = new HashMap<>();
value1.put("value1", "valueValue1");
hashMap1.put(key1, value1);
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String json = gson.toJson(myObject);
System.out.println(json);
此示例prin TS:
[{"{key1=keyValue1}":{"value1":"valueValue1"}}]
UPDATE2使用對(來自Apache的公共lang3)代替HashMap中。這樣做更有意義。
List<Pair<Map<String, Object>, Map<String, Object>>> myObject = new ArrayList<>();
MutablePair<Map<String, Object>, Map<String, Object>> pair1 = new MutablePair<>();
myObject.add(pair1);
Map<String, Object> key1 = new HashMap<>();
key1.put("key1", "keyValue1");
Map<String, Object> value1 = new HashMap<>();
value1.put("value1", "valueValue1");
pair1.setLeft(key1);
pair1.setRight(value1);
Gson gson = new Gson();
String json = gson.toJson(myObject);
System.out.println(json);
打印:
[{"left":{"key1":"keyValue1"},"right":{"value1":"valueValue1"}}]
看來你需要寫一個實用程序方法,以便在扭轉這一工作。 –
請澄清在保存到文件或從文件和創建列表讀取字符串期間是否有問題? – sphinks
將字符串轉換回列表 –