Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字节数组转换为JSONArray的简单方法_Java_Bytearray_Arrays - Fatal编程技术网

Java 将字节数组转换为JSONArray的简单方法

Java 将字节数组转换为JSONArray的简单方法,java,bytearray,arrays,Java,Bytearray,Arrays,我有一个字节数组,它是从JSONArray转换而来的。现在,如何将其转换回JSONArray。有没有简单的lib来实现这一点。或者我必须像post所说的那样使用base64吗?以下是将JSONArray转换为bytearray的代码: JSONArray arr = //some value; byte[] bArr = arr.toString().getBytes(); 在json中发送二进制文件的典型方式是base64编码。 Java提供了对字节[]进行Base64编码和解码的不同方法。

我有一个字节数组,它是从JSONArray转换而来的。现在,如何将其转换回JSONArray。有没有简单的lib来实现这一点。或者我必须像post所说的那样使用base64吗?以下是将JSONArray转换为bytearray的代码:

JSONArray arr = //some value;
byte[] bArr = arr.toString().getBytes();

在json中发送二进制文件的典型方式是base64编码。 Java提供了对字节[]进行Base64编码和解码的不同方法。其中之一是DatatypeConverter

非常简单

byte[] originalBytes = new byte[] { 1, 2, 3, 4, 5};
String base64Encoded = DatatypeConverter.printBase64Binary(originalBytes);
byte[] base64Decoded = DatatypeConverter.parseBase64Binary(base64Encoded);

因为在将Json数组字符串转换为字节时没有指定no
CharSet
。只需使用:

   arr = new JSONArray(new String(bArr));

那么你是说我可以用它将JSONArray转换为字节数组,反之亦然?请在代码中添加解释。它可能会帮助未来的游客。
private JsonArray convertByteArrayToJsonArray(byte[] yourByteArray) throws IOException {
        try (ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(yourByteArray))) {
            zipInputStream.getNextEntry();
            try (JsonReader reader = Json.createReader(zipInputStream)) {
                return reader.readArray();
            }
        }
    }