2015-01-07 29 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 []'以外的内容。 –