如题,举个栗子
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统一使用配置中决定的序列化和反序列化方案。
暂无答案!
目前还没有任何答案,快来回答吧!