【问题标题】:Java: converting bytearray to string and xmlJava:将字节数组转换为字符串和 xml
【发布时间】: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


    【解决方案1】:

    是的,GSON 将 = 更改为 unicode \u003d。

    您可以在此处获取详细信息:

    GSON issue with String

    禁用转义 HTML 然后你就可以开始了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-06
      • 2013-12-19
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多