2017-04-25 135 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

这意味着你的'answers'阵列将是'null'。 – Piyush

回答

3

您没有在正确的JSONObject上致电getJSONArray。使用

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

此外,由于你的JSONArray可能为空,使用optJSONArray避免异常,并检查它是否在继续之前空。

喜欢的东西

JSONArray answers = x.optJSONArray("answers"); 
if (answers != null) { 
    // for loop 
} 
1
JSONObject bject = new JSONObject(); 
JSONArray answers = bject.getJSONArray("answers"); 

您在这里构建一个空的JSONObject,所以这是正常的它无法找到“答案”在它。