android JSONException index 1 out of range [0..1] (Parse 2 json arrays inside 1 loop)

前端 未结 3 1867
失恋的感觉
失恋的感觉 2021-01-29 10:24

I have code like this, the value of jArrAnswer is

[{\"answer\":\"Yes\"},{\"answer\":\"No\"},{\"answer\":\"maybe\"},{\"answer\":\"yrg\"}]

相关标签:
3条回答
  • 2021-01-29 11:10

    Try

    String json = "[{\"answer\":\"Yes\",\"answerid\":\"1\"},{\"answer\":\"No\",\"answerid\":\"2\"},{\"answer\":\"maybe\",\"answerid\":\"3\"},{\"answer\":\"yrg\",\"answerid\":\"4\"}]";
    
    try {
        JSONArray jsonArray = new JSONArray(json);
        if(jsonArray != null) {
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String answerId = jsonObject.getString("answerid");
                String answer = jsonObject.getString("answer");
                //Use answerId and answer
            }
        }
    } catch(JSONException e) {
        e.printStackTrace();
    }
    
    0 讨论(0)
  • 2021-01-29 11:12

    Try this

    try {
            JSONArray jArrAnswer = new JSONArray(answer);
            for (int i = 0; i < jArrAnswer.length(); i++) {
                JSONObject jObjAnswer = jArrAnswer.getJSONObject(i);
                String ansid = jObjAnswer.getString("answerid");
                String ans= jObjAnswer.getString("answer");
            }
         } catch (Exception e) {
            Log.w("asdf", e.toString());
         }
    

    provided "answer" is your json array response

    0 讨论(0)
  • 2021-01-29 11:17

    You are iterating the for loop over jArrAnswer while your fetching the index i over jArrAnswerid.

    Check and make sure that the jArrAnswerid.size() is equal to the jArrAnswer.size().

    Print the jArrAnswerid.size() and check.

    0 讨论(0)
提交回复
热议问题