2012-11-12 6 views
1

웹에서 데이터를 얻으려면 많은 링크가 필요하므로 각 URL의 데이터를 검색하기 위해 루프를 사용하고 싶지만 배열로 JSObject를 만드는 데 문제가있었습니다. 로그가 JSONFunction.getnewstype 성공적으로 데이터를 검색 보여줍니다 있지만 JSObject를 배열로 만드는 방법은 무엇입니까?

JSONObject[] jsObjectallnewstype; 
JSONArray[] jsonArrayallnewstype = null; 

for(int i = 0; i < categories.length(); i++) 
    { 
     JSONObject c = categories.getJSONObject(i); 
     // Storing each json item in variable 
     String title = c.getString(TAG_TITLE); 
     String url = c.getString(TAG_URL); 
     jsObjectallnewstype[i] = JSONFunction.getnewstype(title, url); //java.lang.NullPointerException     
     jsonArrayallnewstype[i] = jsobjectallnewstype[i].getJSONArray(TAG_NEWLIST); 
} 

이 줄

가 null 오류가 jsObjectallnewstype[i]. 그리고 두 번째 줄도 걱정이됩니다 jsonArrayallnewstype[i]도 같은 오류가 발생할 수 있습니다.

그래서 JSObject는 배열로 놓을 수 없습니까? 그렇다면 대안은 무엇입니까 ??

답변

2

현재 코드를 수정하려면 배열을 초기화해야합니다. 이것이 NPE를 얻는 이유입니다.

JSONObject[] jsObjectallnewstype = new JSONObject[categories.length()]; 
    JSONArray[] jsonArrayallnewstype = new JSONArray[categories.length()]; 

    for(int i = 0; i < categories.length(); i++) 
     { 
      JSONObject c = categories.getJSONObject(i); 
      // Storing each json item in variable 
      String title = c.getString(TAG_TITLE); 
      String url = c.getString(TAG_URL); 
      jsObjectallnewstype[i] = JSONFunction.getnewstype(title, url); //java.lang.NullPointerException     
      jsonArrayallnewstype[i] = jsobjectallnewstype[i].getJSONArray(TAG_NEWLIST); 
    } 
+0

맞습니다. 감사합니다. – Eric

관련 문제