前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSONArray转化为byte[]-仅供个人参考学习

JSONArray转化为byte[]-仅供个人参考学习

作者头像
botkenni
发布2021-10-22 16:17:10
1.5K0
发布2021-10-22 16:17:10
举报
文章被收录于专栏:IT码农

如题所示,我们在使用json对象的时候,有的字段是一个JSONArray的情况,我们需要将其转化为byte[],最简单的就是直接遍历每个JSONArray元素,依次赋值给byte[]数组对应的下标元素。

JSONArray的值类似这样[1,2,3],表现形式是一个中括号[]表示的,类似集合,而byte[]数组类型,默认是这样的{1,2,3},表现形式是一个大括号{}表示的,所以不能直接强转类型,比如byte[] a = (byte[])jsonarray。

最笨的办法就是前面提到的,他们之间虽然不能强转,但是都可以遍历,所以直接遍历,就可以给对应的元素赋上值。

这里简单说一下,一些常用的工具类,可以一步转化,而不需要遍历。

代码语言:javascript
复制
package com.xxx.huali.hualitest.json;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.util.Base64;
public class JSONArrary2Bytes {
	public static void main(String[] args) {
		JSONArray data = new JSONArray();
		data.add(49);
		data.add(50);
		data.add(51);
		byte[] byte1 = JSONArray.parseObject(data.toJSONString(), byte[].class); 
        String jar = JSONArray.toJSONString(byte1);
        System.out.println(jar);                            //"MTIz"
        byte1 = JSONArray.parseObject(jar,byte[].class);       
        System.out.println(JSONArray.toJSONString(byte1));  //"MTIz"
        byte1 = Base64.decodeFast(jar);                          
        System.out.println(JSONArray.toJSONString(byte1));  //"MTIz"
        byte1 =  java.util.Base64.getMimeDecoder().decode(jar);  
        System.out.println(JSONArray.toJSONString(byte1));  //"MTIz"
	}
}

我们知道,byte[]字节数组类型在json中存储,默认会以base64加密的方式存储,所以这里我们在进行JSONArray转byte[]的时候,用到了base64的解码方法,这是可以理解的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档