У меня есть 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 в "=" в принимающей части?
спасибо
Да, изменения GSON = для unicode\u003d.
вы можете получить подробную информацию здесь:
Отключите escape-код HTML, и тогда вам хорошо идти.