我对杰克逊来说是一个令人难以置信的新手,我在理解如何完成某些事情时遇到了问题.
我有一些类型为byte []的数据(数据在JAXB生成的类中).在将数据发送到浏览器之前,Jackson然后(我相信)将其转换为JSON,以便网页可以使用它.到目前为止,至少这是我粗略的理解.
JSON数据将我的byte []显示为字符串,与我们想要的显示不匹配.例如,实际数据可能是CAFEDEAD,但JSON字符串看起来像3q2 78r.我希望JSON包含字符串CAFEDEAD
我的问题是,我可以为杰克逊创建自定义内容,在创建最终的JSON之前,将byte []数据转换为可读的十六进制字符串吗?或者如果没有,我还有其他选择吗?
我可以访问javascript,所以如果有办法将JSON字符串重新打开,我也可以使用它.
最佳答案
Jackson将byte []转换为Base64编码的二进制数据.这是传递二进制内容的安全方法.否则,无法知道包含的数据可能使用哪个字符编码,因此尝试从中构建String会有风险且容易出错.
因此,最简单的方法是将接收器base64解码内容重新转换为二进制数据.
您也可以添加自定义序列化器以转换为其他表示形式(十六进制,base85),但这实际上取决于目标是什么.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。