我需要使用JSON发送数据,并且需要使用byte[]在我的JSON中发送图片。现在,我可以使用以下代码将位图转换为字节数组:
selectedImageBitmap.compress(Bitmap.CompressFormat.JPEG, 100,stream);
byte[] byteArray = stream.toByteArray();
但是我无法将这个字节数组放入Json中。我使用的是Android 2.1默认的Json对象。当我尝试将byte[]转换为JSONArray时,它会报错"内存不足"。
JSONArray jsonArray = new JSONArray();
for(int i=0;i<byteArray.length;i++) {
jsonArray.put(byteArray[i]);
}
当我尝试直接将对象放入JsonObject中时,toString() 方法返回了一个奇怪的十六进制字符串(可能是对象的内存地址)。
请问有没有标准的方法将byte[]放入json中?
附注:我最初尝试使用base64,但由于我需要发送和接收的图像很大,因此base64也很大,经常导致内存溢出异常!