我还是JSON和android的新手,没有得到如何解析内部“选项” JSONArray的信息

丽塔
{
"question": [
    {
        "no": 1,
        "question_text": "how many keys are on a standard computer keyboard?",
        "answer": "104",
        "options": [
            {
                "option": "106"
            },
            {
                "option": "104"
            },
            {
                "option": "105"
            },
            {
                "option": "108"
            }
        ]
    },
    {
        "no": 2,
        "question_text": "In which planet we live?",
        "answer": "Earth",
        "options": [
            {
                "option": "Mars"
            },
            {
                "option": "Jupiter"
            },
            {
                "option": "Earth"
            },
            {
                "option": "Saturn"
            }
        ]
    },
    {
        "no": 3,
        "question_text": "Which is the recent novel released by Chethan Bhagat? ",
        "answer": "What young India wants",
        "options": [
            {
                "option": "Revolution 2020"
            },
            {
                "option": "What young India wants"
            },
            {
                "option": "Three mistakes of my Life"
            },
            {
                "option": "One night at call center"
            }
        ]
    },
    {
        "no": 4,
        "question_text": "Which among these is the smallest state in India?",
        "answer": "Goa",
        "options": [
            {
                "option": "Nagaland"
            },
            {
                "option": "Goa"
            },
            {
                "option": "Orisaa"
            },
            {
                "option": "Kerala"
            }
        ]
    },
    {
        "no": 5,
        "question_text": "Lunar Eclipse occurs on?",
        "answer": "A full moon Day",
        "options": [
            {
                "option": "A new moon Day"
            },
            {
                "option": "A half moon Day"
            },
            {
                "option": "A full moon Day"
            },
            {
                "option": "Both a and b"
            }
        ]
    }
 ]
}

这是我的代码,首先我想得到第一个问题以及与选项,答案等相关的值。我进行了搜索,但没有得到与我的问题有关的任何解决方案。请帮我

private class DetailsTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();
        Log.i(TAG, "Inside onPreExecute");
        if (!progress_dialog.isShowing())
            progress_dialog.show();
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        if (progress_dialog.isShowing())
            progress_dialog.dismiss();
        Log.i(TAG, "Inside onPostExecute");

        JSONObject json, data, value = null;
        JSONArray questions_array;

        // getting JSON string from context
        json = parser.getJSONFromUrl(context);
        Log.i(TAG, "" + json.toString());

        try {

            questions_array = json.getJSONArray(TAG_QUESTION_ARRAY);

            for (int i = 0; i < questions_array.length(); i++) {
                data = questions_array.getJSONObject(i);


                String question_text = data.getString(TAG_QUESTION);
                model.setQuestion(question_text);

                int question_num = data.getInt(TAG_QUESTION_NO);
                model.setQuestion_number(question_num);


                String answer = data.getString(TAG_ANSWER);
                model.setRight_answer(answer);

                // options is again an array
                JSONArray q_options = data.getJSONArray(TAG_OPTIONS_ARRAY);
                for (int j = 0; j < q_options.length(); j++) {
                    value = q_options.getJSONObject(j);

                }

                String option = value.getString(TAG_OPTION);
                question.setText(model.getOption());
                question_number.setText(model.getQuestion_number());
                //Here i want to set 4 options to 4 different textviews

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

}

private class ClickListener implements View.OnClickListener {

    @Override
    public void onClick(View view) {
        // TODO Auto-generated method stub

        if (view instanceof Button) {
            Button temp = (Button) view;
            id = temp.getId();
        } else {
            TextView temp = (TextView) view;
            id = temp.getId();
            Log.i(TAG, "value of id:" + id);

            currenttext = ((TextView) view).getText().toString();
            Log.i(TAG, "value of string:" + currenttext);

        }

        switch (id) {
        case R.id.button_next:
            Toast.makeText(context, "Next pressed", Toast.LENGTH_SHORT)
                    .show();
            int qu = model.getQuestion_number();
            int new_qn = qu + 1;
            Log.i(TAG, "qqqqqqqqnnnn:::----" + new_qn);
            // set values for question number
            break;

        case R.id.button_previous:
            Toast.makeText(context, "Previous pressed", Toast.LENGTH_SHORT)
                    .show();
            int qu1 = model.getQuestion_number();
            int new_qn1 = qu1 - 1;
            Log.i(TAG, "qqqqqqqqnnnn:::----" + new_qn1);
            break;

        case R.id.first_option:
            getScore();
            break;

        case R.id.second_option:
            getScore();
            break;

        case R.id.third_option:
            getScore();
            break;

        case R.id.fourth_option:
            getScore();
            break;

        }
    }
}
}

我想将这些选项值设置为4个不同的textview,并且当用户单击任何textview(可单击)时,我想显示带有相关选项的下一个问题,但没有得到如何解析此“选项” JSONArray的信息。

法赞
ArrayList<String> ls_options = new Arr...


for (int j = 0; j < q_options.length(); j++) {
      //  value = q_options.getJSONObject(j);
          ls_options.add(q_options.getJSONObject(j));

}

textview0.setText(ls_options.get(0));
textview1.setText(ls_options.get(1));
textview2.setText(ls_options.get(2));

您创建了一个valuetype JSONObject,您正在for循环中分配它,因此它会被覆盖

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当JSONArray之前没有节点时,如何解析Json数据?(Android)

来自分类Dev

没有得到 coingecko API 的信息

来自分类Dev

JSON Android解析JSONArray

来自分类Dev

mysqli_fetch_array没有得到信息

来自分类Dev

解析JsonArray中的JsonArray(嵌套)

来自分类Dev

我如何将int等同于int64_t而又没有得到转换丢失整数精度警告的信息?

来自分类Dev

Android:JSONArray解析问题

来自分类Dev

Android:解析2 jsonArray

来自分类Dev

Android解析2 jsonarray

来自分类Dev

如何使用GSON WHen对象解析JSON是JSONObject还是JSONArray

来自分类Dev

如何使用GSON WHen对象解析JSON是JSONObject还是JSONArray

来自分类Dev

如何解析此JSON信息?

来自分类Dev

Android ArrayAdapter和JSONArray

来自分类Dev

解析没有显式JSONObject的JSONArray

来自分类Dev

PHP中的JSONArray解析

来自分类Dev

用JSONArray解析JSONObject

来自分类Dev

动态解析多维JsonArray

来自分类Dev

用JsonObject解析JsonArray

来自分类Dev

JSONArray解析多维数组

来自分类Dev

JSONArray解析Laravel 4

来自分类Dev

JSONArray 无法解析

来自分类Dev

无法使用改造来解析对象内部的jsonarray的jsonarray?

来自分类Dev

解析Android Volley JSONArray响应

来自分类Dev

无法在Android中解析JSonArray

来自分类Dev

JsonArray和Gson

来自分类Dev

Android JSONArray循环

来自分类Dev

Volley for Android的JSONArray响应

来自分类Dev

Android中的JSONArray替代

来自分类Dev

Android ArrayAdapter and JSONArray