JSON.toJSONString()的疑惑

licjd 2019-02-14 11:50:09

byte[] bytes = "20170604_11002130319010_12312126".getBytes();

List<Object> list = new ArrayList<>(2);
list.add(bytes);

// Map<String, Object> rowKeyList = new HashMap<>(2);
// rowKeyList.put("rowKeyList", "20170604_11002130319010_12312126");

Map<String, Object> data = new HashMap<>(2);
data.put("rowKeyList", list);
data.put("total", 1);

String str = JSON.toJSONString(data);

System.out.println("JSON.toJSONString(data)" + str);


结果:JSON.toJSONString(data){"rowKeyList":["MjAxNzA2MDRfMTEwMDIxMzAzMTkwMTBfMTIzMTIxMjY="],"total":1}

为什么没有将20170604_11002130319010_12312126正常输出???
...全文
1726 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
licjd 2019-02-14
  • 打赏
  • 举报
回复
引用 3 楼 qybao 的回复:
这种事情,不知道别人开发的包的toJSONString方法怎么实现的也不好说了,你可以不用List<Object>,用 List<String>直接存你的字符串试试看是什么结果


感谢#3的qybao,该贴会暂留一段时间再结贴,希望可以得到更满意的解惑
licjd 2019-02-14
  • 打赏
  • 举报
回复
原因已知道,JSON不能转换byte[]

暂时解决,修改项目代码为 JSON.toJSONString(new String(bytes))

因为在项目中对于byte[]进行了封装,为此暂时只能改变封装类型为String

qybao 2019-02-14
  • 打赏
  • 举报
回复
这种事情,不知道别人开发的包的toJSONString方法怎么实现的也不好说了,你可以不用List<Object>,用 List<String>直接存你的字符串试试看是什么结果
licjd 2019-02-14
  • 打赏
  • 举报
回复
引用 1 楼 nayi_224 的回复:
你为何要getBytes()?
JSON.toJSONString(data); JSON对象是哪来的?


import com.alibaba.fastjson.JSON;

getBytes只是为了模拟手中项目中的代码逻辑
nayi_224 2019-02-14
  • 打赏
  • 举报
回复
你为何要getBytes()? JSON.toJSONString(data); JSON对象是哪来的?

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧