java - 如何将 JSONArray 中的字节复制到字节数组

标签 java android arrays

我正在以缓冲区(字节)的形式获取图像数据,但我想将其转换为 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/

相关文章:

java - 无法从 TemporalAccessor : {}, ISO 获取 ZoneOffset,Europe/Berlin 解析为 java.time.format.Parsed 类型的 2019-12-26

java - 是否可以为特定类型而非泛型类型实现 AbstractList?

perl - 如何打印 Perl 二维数组?

javascript - 谷歌应用脚​​本: Create a new column in array based on value of other columns

javascript - 如何从 javascript 中的现有数组创建对象数组?

java - org.h2.jdbc.JdbcSQLException : Unsupported connection setting AUTO_SERVER

java - 如何修正这个程序?

java - 屏幕中心坐标错误

android - 定义应用程序中所有 Activity 要使用的常量 : android

android - "Execution of compression failed"Android Studio 3.1 建工程报错