我有一个Java(JAX-RS)Web服务,它将图像存储在mysql blob中。 使用GET请求获取带有图像的JSON或XML。
[{"id":1,"imagen":"iVBORw0KGgoAAAANSUhEUgAAAKAAAABfCAYAAABvC8zhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAGO5JRE ...etc
我的问题是: 在我的Android应用程序中获取JSON并将文本存储为变量是一个好主意吗?我怎么能从该文本创建位图?它会非常慢吗? 感谢
答案 0 :(得分:1)
你问题的第一个答案是:绝对是的。 JSON是将数据与XML进行比较的更好方法。
其次,从您的JSON String
开始,图像似乎是Base64
编码的。因此解析JSON并解码Base64
String
以使用Bitmap
来获取图像BitmapFactory
:
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
解析JSON:
JSONArray jsonArray = new JSONArray(response);
for(int i=0;i<jsonArray.length;i++){
JSONObject jsonObj = jsonArray.getJSONObject(i);
String id = jsonObj.getString("id");
String encodedString = jsonObj.getString("imagen");
Log.i("DATA","Id: "+id);
}