>

XML 에서 데이터를 받고 있습니다  파일이며 이것은 XML 를 파싱하는 코드입니다. 문제가 없습니다. ArrayList에 익숙하지 않으므로 JSON 를 고수합니다. .

while (eventType != XmlPullParser.END_DOCUMENT)
    {
        if(eventType == XmlPullParser.START_DOCUMENT)
        {
            Log.e("XML READ","--- Start XML ---");
        }
        else if(eventType == XmlPullParser.START_TAG) {
            if (xpp.getName().toString().equals("question")) {
            } else if (xpp.getName().toString().equals("choice")) {
                try {
                    choices = new JSONObject();
                    choices.put("value", xpp.getAttributeValue(null, "value"));
                    choices.put("iscorrect", xpp.getAttributeValue(null, "iscorrect"));
                    jsonArray.put(choices);
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        try {
            questions.put("questions", jsonArray);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        try {
            eventType = xpp.next();
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

이 구조로 JSON 객체를 만들려고합니다.

{
    "question": [
        {
            "q": "what is 1 + 1?",
            "choices": [
                {
                    "ans":"1",
                    "iscorrect":"false"
                },
                {
                    "ans":"2",
                    "iscorrect":"true"
                }
            ]
        },
    ]
}

코드에 대한 아래 예제를 따랐습니다. Android- JSON 배열 및 JSON 객체 생성

  • 답변 # 1

    이것을 시도해보십시오

    JSONObject jsonObjque1 = new JSONObject();
    JSONObject jsonObjque2 = new JSONObject();
    try 
    {
         jsonObjque1.put("ans", "1");
         jsonObjque1.put("iscorrect", "false");
         jsonObjque2.put("ans", "2");
         jsonObjque2.put("iscorrect", "true");
    } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
     JSONArray jsonArrayChoice = new JSONArray();
     jsonArrayChoice.put(jsonObjque1);
     jsonArrayChoice.put(jsonObjque2);
     JSONObject ChoiceObj = new JSONObject();
     ChoiceObj.put("q", "what is 1 + 1?");
     ChoiceObj.put("choices", jsonArrayChoice);
    
     JSONArray jsonArrayquestion = new JSONArray();
     jsonArrayquestion.put(ChoiceObj);
     JSONObject jsonObjectMain = new JSONObject();
     jsonObjectMain.put("question", jsonArrayquestion);
     Log.i("TAG", "JSON Response :" + jsonObjectMain.toString());
    
    

    출력

관련 자료

  • 이전 java - ViewPager에서 조각 재로드
  • 다음 string - 파이썬을 사용하여 정수를 뒤집고 회문인지 확인하십시오