我正在以缓冲区(字节)的形式获取图像数据,但我想将其转换为 Base64 字符串。数据在 JSONArray 内接收,如下所示
JSONArray : `[53,57,51,47,53,57,51,55,50,98,98,54,53,51,54,97,102,101,53,101,102,54,57,54,53,54,53,51,102,98,53,99,98,98,99,51,98,48,52,57,56,52,52,101,54,48,50,99,56,55,101,54,53,97,51,102,56,49,56,57,56,98,102,56,49,57,97,57]`
为此,我将 JSONArray 复制到 "byte"数组
中,如下所示:
JSONArray bytearray_json = record.getJSONObject("image").getJSONArray("data");
byte[] bytes = new byte[bytearray_json.length()];
for (int i =0; i < bytearray_json.length(); i++ ) {
bytes[i] = (byte)bytearray_json.get(i);
}
String base_64 = Base64.encodeToString(bytes,Base64.DEFAULT);
但我得到一个异常:无法将整数转换为字节
我无法执行 bytearray_json.get(i).toString().getBytes();
因为它返回一个 Byte Array
。
我该如何解决这个问题?
最佳答案
您可以尝试一下,
JSONArray jsonArray = response.getJSONObject("image").getJSONArray("data");
byte[] bytes = new byte[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
bytes[i]=(byte)(((int)jsonArray.get(i)) & 0xFF);
}
Base64.encodeToString(bytes, Base64.DEFAULT);
关于java - 如何将 JSONArray 中的字节复制到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45128712/