VO对象中byte[]数组怎么用JSON转换
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"VO对象中byte[]数组怎么用JSON转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"VO对象中byte[]数组怎么用JSON
千家信息网最后更新 2026年11月03日VO对象中byte[]数组怎么用JSON转换
这篇文章主要讲解了"VO对象中byte[]数组怎么用JSON转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"VO对象中byte[]数组怎么用JSON转换"吧!
如果VO对象中有byte[]数组如何处理?jason转换的时候,给前端暴露出来的byte[]会转换成String
但是前端发送的请求中,String转换为byte[]可能会抛出异常:
com.fasterxml.jackson.core.JsonParseException: Failed to decode VALUE_STRING as base64 (MIME-NO-LINEFEEDS): Illegal character '"' (code 0x22) in base64 content at [Source: java.io.PushbackInputStream@1d21ffcf; line: 4, column: 20]
这个时候可以自定义序列化和反序列化方法来处理,具体代码如下:
VO类:OrderVO
import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * * OrderVO. 订单模型 * */ @Data @ApiModel("订单模型") public class OrderVO { /** * 订单ID */ @ApiModelProperty("订单ID") private Long Id; /** * 订单Code */ @ApiModelProperty("订单Code") private String code; /** * 订单名称 */ @ApiModelProperty("订单名称") private String name; /** * 订单状态 */ @ApiModelProperty("订单状态") private Integer status; /** * 商品code */ @ApiModelProperty(name = "商品Code") private String productCode; /** * 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(name = "创建时间", readOnly = true) private Date createdDate; /** * 用户名称 */ @ApiModelProperty("用户名称") private String username; /** * remark */ @ApiModelProperty("remark") private String remark; /** * other, just a demo field */ @ApiModelProperty("other") @JsonSerialize(using = MyByteSerialize.class) @JsonDeserialize(using = MyByteDeSerializer.class) private byte[] other; }反序列化类:MyByteDeSerializer
import java.io.IOException; import org.apache.commons.lang.StringUtils; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; public class MyByteDeSerializer extends JsonDeserializer{ @Override public byte[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { String stringValue = p.getText(); if (StringUtils.isEmpty(stringValue)) { return null; } return stringValue.getBytes(); } }
序列化类:MyByteSerialize
import java.io.IOException; import java.nio.charset.Charset; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; public class MyByteSerialize extends JsonSerializer{ @Override public void serialize(byte[] value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { if (null == value || 0 == value.length) { gen.writeString(""); } gen.writeString(new String(value, Charset.defaultCharset())); } }
这样就可以方法的处理byte[]类型的json转换了。
感谢各位的阅读,以上就是"VO对象中byte[]数组怎么用JSON转换"的内容了,经过本文的学习后,相信大家对VO对象中byte[]数组怎么用JSON转换这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
订单
对象
数组
名称
序列
学习
内容
前端
商品
方法
时候
时间
模型
状态
用户
处理
代码
就是
思路
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
互联网佳科技有限公司
北京路客互联网科技有限公司
为想互联网科技怎么样
金融科技还是互联网
关于新基建和互联网科技
智网互联网科技
融贸通互联网科技
互联网科技咨询
美国互联网前沿科技
湖南洣水互联网科技有限公司扣款
互联网科技中介
互联网校园科技培训
湖北码尼互联网科技有限公司电话
互联网科技革命什么开始
互联网科技与大数据专业
健康食品互联网创新科技园项目
互联网金融科技展
广东工业互联网大赛深圳学泰科技
云鲸互联网络科技有限公司
深圳互联网科技公司
远拓互联网科技
时间互联网络科技
须眉科技是互联网公司吗
宝灵互联网科技有限公司
深圳市优智互联网科技有限公司
云南省自由互联网科技有限公司
广州互联网高科技取餐柜
普陀区互联网教育科技管理办法
同城互联网络科技