2020-10-17java中JSONArray转byte[]字节数组

10/18 08:23
阅读数 52

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

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

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

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

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的解码方法,这是可以理解的。 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部