2012-10-12 4 views
2

여기 내 AsyncTask입니다. doInbackground 메소드 내에서 JSONException 가져 오기안드로이드에서 AsyncTask 내부 JSONException

try { 
    Log.v("thisurl", url); 
    JSONArray data_holder = new JSONArray(); 
    JSONParser jParser = new JSONParser(); 
    // getting JSON string from URL 
    JSONObject json = jParser.getJSONFromUrl(url); 
      data_holder = json.getJSONArray(data_val); 
    for (int i = 0; i < data_holder.length(); i++) { 
     HashMap<String, String> data_map = new HashMap<String, String>(); 
     JSONObject obj = data_holder.getJSONObject(i); 
      } 
     } 

예외를 잡아라. 그러나 나는 그 이유를 찾을 수 없습니다. 수동으로 확인하면 URL이 json 응답을 올바르게 가져옵니다. 다음은 스택 추적입니다.

W/System.err(3353): org.json.JSONException: No value for searchresult 
W/System.err(3353): at org.json.JSONObject.get(JSONObject.java:354) 
W/System.err(3353): at org.json.JSONObject.getJSONArray(JSONObject.java:544) 
W/System.err(3353): at com.store.SearchResultActivity$getJsonProductData.doInBackground(SearchResultActivity.java:318) 
W/System.err(3353): at com.store.SearchResultActivity$getJsonProductData.doInBackground(SearchResultActivity.java:1) 
W/System.err(3353): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
W/System.err(3353): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
W/System.err(3353): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
W/System.err(3353): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
W/System.err(3353): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
W/System.err(3353): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
W/System.err(3353): at java.lang.Thread.run(Thread.java:856) 
D/AndroidRuntime(3353): Shutting down VM 
W/dalvikvm(3353): threadid=1: thread exiting with uncaught exception (group=0x40ccb300) 

내가 잘못하고있는 것을 지적 할 수 있습니까?

+0

json 응답을 인쇄하고 직접 찾으십시오. –

답변

2

오류는 jsonarray가 키 data_val 존재하지 않습니다,

data_holder = json.getJSONArray(data_val); 

하고 있기 때문에 라인

에 있습니다. 점검 응답 및 data_val의 값. 이것들이 적절하게 매치하고 있으면, 단지 노트의 경우, 키의 값은 대문자와 소문자가 구별됩니다.

+0

대소 문자를 구별합니다. – intrepidkarthi

관련 문제