2014-05-08 92 views
0

獲取文件我在parse.com的localdataStore有文件(影像)的陣列,我想從那裏獲取文件,我已經實現了下面的代碼...無法從JSONObject的

ParseQuery<ParseObject> query = ParseQuery.getQuery("Test_class"); 

query.whereEqualTo("objectId", "SSDW232sda"); 
query.fromLocalDatastore(); 

    try{ 
     List<ParseObject> objects = queryChild.find(); 
     System.out.println(objects.size()); 
     ParseObject object = objects.get(0); 


     JSONArray imagesArr = object.getJSONArray("images"); 

     for(int i=0;i<imagesArr.length();i++){ 
      try { 
       ParseFile image = (ParseFile) imagesArr.getJSONObject(i).get("name");//.getParseFile("name"); 
       byte[] img = image.getData(); 
       bitmaps.add(BitmapFactory.decodeByteArray(img , 0, img.length)); 
      } catch (ParseException e1) { 
       e1.printStackTrace(); 
       System.out.println("could not get image"); 
      } 
     } 


    }catch(Exception e) { 
     e.printStackTrace(); 
    } 

但提供了以下錯誤

java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseFile 

幫助我解決這個問題..

+0

我上面提到的錯誤是log cat錯誤...你在問什麼迴應? –

+0

你得到這個是因爲imagesArr.getJSONObject(i).get(「name」)返回一個String對象。也許文件的名稱?在imagesArr.getJSONObject(i).get(「name」)上做一條印刷線,看看你得到了什麼。此外,你應該包括圖像數組寫入本地數據存儲的代碼 – Moonwalkr

回答

1

下面是JSON規範。那裏沒有一個ParseFile對象。

您可能想從JSON獲取String,將其轉換爲字節數組,然後調用ParseFile構造函數。

Ex。

String stringFromJson = json.getString("whatever_key_you_need"); 
byte[] stringFromJsonAsByteArray = stringFromJson.getBytes(); 

ParseFile parseFile = new ParseFile("filename.txt", stringFromJsonAsByteArray); 
+0

正確獲取值,但是當轉換爲位圖並設置爲ImageView然後顯示空白框時... –

+0

您確定需要「ParseFile」而不是「ParseImageView」 ?看看他們的文檔就可以了:: https://parse.com/docs/android_guide –

+0

我將byteArray轉換爲位圖並將其設置爲imageView,但沒有我能看到的... –