2015-01-07 3 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() собирается использовать toString() представление byte[], который не содержит какой-либо информации о его содержании: оно относится к идентичности хэш-массива байтов.

Невозможно восстановить содержимое byte[] от byte[].toString() или в вашем случае от toString() от карты.

+0

Есть ли другой способ, которым это может быть достигнуто? Мне нужно снова прочитать карту и декодировать значение карты. – user2893856

+0

Если вы хотите извлечь информацию 'byte []', вам придется преобразовать 'Map' в' String' каким-либо другим способом, кроме 'map.toString()', или у вас будет для хранения чего-либо, кроме 'byte []'. –

Смежные вопросы