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

7

我有一个字节数组,它是从JSONArray转换而来的。现在,如何将其转换回JSONArray?是否有任何简单的库可以实现这个目的?或者,我必须像这篇帖子中所说的那样使用base64?以下是将JSONArray转换为字节数组的代码:

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

9

由于您在将Json数组字符串转换为字节时未指定CharSet,因此可以简单地使用:

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

7

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

非常简单。

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

那么您的意思是我可以使用这个来将JSONArray转换为字节数组,反之亦然? - Vithushan

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();
            }
        }
    }

请在您的代码中添加一些解释说明,这将有助于未来的访问者。 - shreyasm-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接