Java: преобразование bytearray в строку и xml

1

У меня есть XML с полем "токен", в java это:

@XmlElement(name = "Token", required = true)
protected byte[] token;

Я использую UUID для генерации токена, поэтому я делаю:

UUID uuid=UUID.randomUUID();
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
byte[] token = bb.array();   
myXML.setToken(token);

и в XML я получаю что-то вроде этого:

<Token>jvXrf8HvSVq23MiwSbnT+A==</Token>

Мне также нужно отправить токен службе, использующей нотацию Json, поэтому в другой функции я получаю токен из объекта XML и сохраняю его в POJO:

String sToken = Base64.encode(myXML.getToken());
myPojo.setToken(sToken);

Я проверил строку и это правильно, но когда я конвертирую myPojo в Json с Gson:

GsonBuilder gb = new GsonBuilder()
  .serializeNulls()
  .setPrettyPrinting()
  .setDateFormat("yyyy-MM-dd HH:mm:ss");
Gson gson = gb.create();
String json=gson.toJson(myPojo);

Я получаю это в строковом представлении json объекта:

jvXrf8HvSVq23MiwSbnT+A\u003d\u003d

с двумя "=", переведенными в "\ u003d". Это нормально? Получите ли код \u003d в "=" в принимающей части?

спасибо

Теги:
base64
bytearray

1 ответ

0
Лучший ответ

Да, изменения GSON = для unicode\u003d.

вы можете получить подробную информацию здесь:

Вопрос GSON со строкой

Отключите escape-код HTML, и тогда вам хорошо идти.

  • 0
    кажется, я не достаточно гуглил на этот раз :) спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню