2015-01-07 32 views
-1

我需要對地圖值進行編碼並將其解碼。下面的代碼不會解碼該值。地圖值編碼和解碼

byte[] bytes = "This,is,test".getBytes("UTF-8"); 
    Map<String, Object> map = new HashMap<String,Object>(); 
    map.put("description",bytes); 

    String s1= map.toString(); 
    String s2[]=s1.substring(1,s1.length()-1).split("="); 
    String string1 = new String(s2[1].getBytes(), "UTF-8"); 
    System.out.println(string1); 
+0

呃,你爲什麼要這麼做? – fge

+0

嘗試添加'System.out.println(s1)'到你的程序,看看它打印出了什麼......你期望'map.toString()'返回什麼?如果地圖中有多個條目,你希望它會做什麼? – Dima

+0

是否要從地圖製作json字符串,反之亦然? –

回答

0

map.toString()將要使用的byte[],其不包含關於它的內容的任何信息的toString()表示:它指的是字節數組的標識哈希。

無法從地圖的byte[].toString()或您的情況中從toString()中恢復byte[]的內容。

+0

有沒有其他辦法可以實現?我需要再次讀取地圖並解碼地圖值。 – user2893856

+0

如果你想提取'byte []'信息,除了'map.toString()'之外,你將不得不將'Map'轉換爲'String',否則你將會擁有除了存儲'byte []'以外的內容。 –