2017-04-25 7 views
-4

org.json.JSONException : 배열의 값 없음org.json.JSONException : 없음 값

StringRequest req = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String s) { 

      try { 
       questionsList = new ArrayList<QuestionsBean>(); 
       JSONObject jsonObject = new JSONObject(s); 
       JSONArray question = jsonObject.getJSONArray("questions"); 
       for (int i = 0; i < question.length(); i++) { 
        JSONObject x = question.getJSONObject(i); 
        QuestionsBean u = new QuestionsBean(); 
        u.setDate(x.getString("date")); 
        u.setQuestion(x.getString("question_text")); 
        JSONObject bject = new JSONObject(); 
        JSONArray answers = bject.getJSONArray("answers"); 
        for (int j = 0; j < answers.length(); j++) { 
         JSONObject xx = answers.getJSONObject(i); 
         u.setAnswer_body(xx.getString("Answer_body")); 
        } 
        questionsList.add(u); 
+0

같은

뭔가. – Piyush

답변

3

getJSONArrayJSONObject에 올바르게 호출하지 않았습니다. 당신의 JSONArray null이 될 수있는 예외를 방지하고 계속하기 전에 널 (null)인지 확인하는 optJSONArray을 사용하기 때문에,

JSONArray answers = x.getJSONArray("answers"); 

또한 사용합니다. 당신의`answers` 배열이`null`된다는 뜻

JSONArray answers = x.optJSONArray("answers"); 
if (answers != null) { 
    // for loop 
} 
1
JSONObject bject = new JSONObject(); 
JSONArray answers = bject.getJSONArray("answers"); 
현재 비어 된 JSONObject를 구축, 그래서 그것의 '답'을 찾을 수있는 정상

그것.

관련 문제