2014-09-12 57 views
0

我有一个将图像存储在mysql blob中的Java(JAX-RS)web服务。 使用GET请求获取带有图像的JSON或XML。如何在Android上从java webservice获取图像

[{"id":1,"imagen":"iVBORw0KGgoAAAANSUhEUgAAAKAAAABfCAYAAABvC8zhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAGO5JRE ...etc 

我的问题是: 这是个好主意来获取JSON在我的Android应用程序和存储文本仙变量?我怎样才能从该文本创建一个位图?会不会很慢? 谢谢

回答

1

你的问题的第一个答案是:绝对是的。 JSON是将数据与XML进行比较的更好方法。其次,从你的JSON String,它似乎像是Base64编码。所以解析JSON和解码Base64String使用BitmapFactory这样的方式来获得图像Bitmap

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); 
} 
+0

谢谢您的回答,我会尝试这个 – 2014-09-12 11:08:52