fastjson JSONObject.toJsonString 对byte[]类型属性处理有问题

xpszyzbs  于 2021-11-27  发布在  Java
关注(0)|答案(0)|浏览(257)

如题,举个栗子

class Test {
    public byte[] p;
}
Test t = new Test();
JSONObject jo = JSON.toJSON(t);
String js = jo.toJSONString(jo); // 这里p被序列化为[xxx,xxx,xxx],而非base64字符串
JSONObject joo = JSON.parseObject(js);
byte[] b = joo.getBytes("p"); // 这里自然就出错了.

workround如下:

String js = JSON.toJSONString(t); // 这里p被序列化为base64字符串
JSONObject joo = JSON.parseObject(js);
byte[] b = joo.getBytes("p"); // 这里就没问题了

建议解决思路
添加或使用已有的某个配置项,来觉得对于byte[]的序列化和反序列化方式,然后对于JSONObject.toJsonString和JSON.toJSONString以及JSON.parseObject统一使用配置中决定的序列化和反序列化方案。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题