【发布时间】:2014-07-02 16:20:03
【问题描述】:
我有一个带有“令牌”字段的 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);
我检查了字符串,它是正确的,但是当我使用 Gson 将 myPojo 转换为 Json 时:
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 代码是否在接收部分被翻译为“=”?
谢谢
【问题讨论】:
标签: java xml json base64 bytearray