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

时间:2014-09-29 11:29:26

标签: java bytearray arrays

我有一个从JSONArray转换而来的字节数组。现在如何将其转换回JSONArray。有没有简单的lib来做到这一点。或者我必须使用base64作为this帖子说?以下是将JSONArray转换为bytearray的代码:

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:7)

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

非常简单

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

答案 2 :(得分:0)

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();
            }
        }
    }
相关问题