解析具有一对多关系的json数组

时间:2014-12-12 05:54:19

标签: android json one-to-many server

我有一个来自服务器的JSON数组,它有类别,每个类别有两个,三个问题,每个问题的答案形式为“是”'并且没有'。

我创建了三个类,一个用于类别,一个用于问题,一个用于答案。类别类有问题的arraylist,问题类有答案的arraylist。

我需要获取类别名称,并使用类别名称填充微调器,之后我从微调器中选择一个类别后,应该出现与该类别相关的所有问题和答案。

我已经解析了json,并使用类别名称填充了微调器,但我需要知道,我如何使用相应的问题和答案来映射该类别。

JSON的格式如下:

    [
    {     
     "categoryName": "color1",   
     "colorCategoryQuestions": [
     {

     "question": "Is it blue?",       
     "colorCategoryQuestionOptions": [
            {

                    "optionText": "Yes"

             },
            {

                    "optionText": "No"

             }
        ],       
      },
     {

         "question": "Is it red?",       
         "colorCategoryQuestionOptions": [
             {

                 "optionText": "Yes",

             },
             {

                    "optionText": "No",

            }
        ],       
      },

     ],

     },

     {     
             "categoryName": "color2",   
            "colorCategoryQuestions": [
           {

                "question": "Is it blue?",       
                "colorCategoryQuestionOptions": [
                 {

                    "optionText": "Yes"

               },
               {

                    "optionText": "No"

                }
          ],       
        },
      {

     "question": "Is it red?",       
     "colorCategoryQuestionOptions": [
             {

                 "optionText": "Yes",

             },
             {

                    "optionText": "No",

            }
        ],       
      },

     ],

    },

   ]

1 个答案:

答案 0 :(得分:0)

我可能会误解,但是只用一个班来代表类别,问题和答案的三重奏会不会更容易?例如:

public class QuizItem{

     private String category;
     private String question;
     private int answer;

     public QuizItem(String category, String question, int answer) {
          super();
          this.category = category;
          this.question = question;
          this.answer = answer;
}

...

然后所有关联都已链接。您可以将这些对象存储在ArrayList中,然后遍历它以按类别提取所需内容等。也就是说,您甚至可能不需要该类来对数据建模。也许您可以按原样存储JSON对象,将它们粘贴在ArrayList中,然后遍历它以使用标准JSON库工具提取所需内容。