java – 用于将Byte数组转换为String的Jackson Custom Mapper

我对杰克逊来说是一个令人难以置信的新手,我在理解如何完成某些事情时遇到了问题.

我有一些类型为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 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)