2014-07-16 63 views
1

我試圖從Parse.com中檢索圖像。在DataBrowser中,如果圖像文件爲空,則代碼崩潰。所以我通過檢查文件!= null來處理這個錯誤。Parse.com:JSONObject無法轉換爲ParseFile

它崩潰在這條線ParseFile file = (ParseFile) ob.get("image");JSONObject cannot be cast to ParseFile

那麼如何處理,如果解析文件爲空?

for (ParseObject ob : result) { 
String perf = ob.getString("info"); 
ParseFile file = (ParseFile) ob.get("image"); 
if (file != null) { 
    image_url = file.getUrl(); 
    } else { 
     /*load some default image url*/ 
     image_url = "www.abc.com/image.png"; 
    } 
    Picasso.with(getActivity()).load(image_url).into(imageView); 
    textView.setText(perf); 
    layoutCards.setVisibility(View.VISIBLE); 
} 
+0

Get(image)返回null。沒什麼可施展的。 –

回答

3

嘗試:

(請務必在解析databrowser有一個叫您存儲parsefile 「圖像」 字段)

ParseFile parseFile = ob.getParseFile("image"); 

然後檢查:

if (parseFile != null && parseFile.getUrl() != null && parseFile.getUrl().length() > 0) { 
      ... 
} 
+0

Knock Knock !!感謝您計算出Dexter。在舊版本的Parse中,我使用了object.get(「image」)。在Parse-1.5.1.jar中的object.getParseFile(「image」); – DroidLearner

0

如何關於捕獲這樣的NullPointerException:

for(ParseObject ob : results) { 
    try { 
     ParseFile imageFile = (ParseFile) ob.get("image"); 

     imageFile.getDataInBackground(new GetDataCallback() { 
      public void done(byte[] data, ParseException e) { 
       if (e == null) { 
        // data has the bytes for the image 
        Log.d(TAG,"get image"); 
       } else { 
        // something went wrong 
       } 
      } 
     }); 
    } catch (NullPointerException e) { 
     Log.d(TAG,"got no image"); 
    } 
} 
+0

沒有工作。同樣的錯誤仍然 – DroidLearner

+0

我把一個圖像文件到我的解析數據庫,然後我刪除圖像文件,(但原始還存在,只是圖像文件被刪除),這些代碼適用於這種情況。 –

相關問題