使用Gson从Singleton类对象中提取值

时间:2016-09-16 11:44:12

标签: android

我正在使用gson来解析json响应。虽然一切都运行良好。当需要从单例类对象获取数据时,我坚持这种情况。

我的单身人士课程如下:

公共类ReadingTest {

public List<QuestionBean> Question;

public static List<ReadingTest> arrayReadingTestFromData(String str, String key) {

    try {
        JSONObject jsonObject = new JSONObject(str);
        Type listType = new TypeToken<ArrayList<ReadingTest>>() {
        }.getType();

        return new Gson().fromJson(jsonObject.getString(str), listType);

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

    return new ArrayList();


}

public String getTest() {
    return Test;
}

public void setTest(String Test) {
    this.Test = Test;
}

public String getTestfile() {
    return Testfile;
}

public void setTestfile(String Testfile) {
    this.Testfile = Testfile;
}

public String getQuestionGroupFile() {
    return QuestionGroupFile;
}

public void setQuestionGroupFile(String QuestionGroupFile) {
    this.QuestionGroupFile = QuestionGroupFile;
}

public int getPassageId() {
    return PassageId;
}

public void setPassageId(int PassageId) {
    this.PassageId = PassageId;
}

public String getPassages() {
    return Passages;
}

public void setPassages(String Passages) {
    this.Passages = Passages;
}

public int getPassageTime() {
    return PassageTime;
}

public void setPassageTime(int PassageTime) {
    this.PassageTime = PassageTime;
}

public String getPassageHeading() {
    return PassageHeading;
}

public void setPassageHeading(String PassageHeading) {
    this.PassageHeading = PassageHeading;
}

public String getPassageInstruction() {
    return PassageInstruction;
}

public void setPassageInstruction(String PassageInstruction) {
    this.PassageInstruction = PassageInstruction;
}

public String getPassageTopic() {
    return PassageTopic;
}

public void setPassageTopic(String PassageTopic) {
    this.PassageTopic = PassageTopic;
}

public int getParagraphId() {
    return ParagraphId;
}

public void setParagraphId(int ParagraphId) {
    this.ParagraphId = ParagraphId;
}

public String getParagraphName() {
    return ParagraphName;
}

public void setParagraphName(String ParagraphName) {
    this.ParagraphName = ParagraphName;
}

public String getParagraphs() {
    return Paragraphs;
}

public void setParagraphs(String Paragraphs) {
    this.Paragraphs = Paragraphs;
}

public int getQuestionGroupId() {
    return QuestionGroupId;
}

public void setQuestionGroupId(int QuestionGroupId) {
    this.QuestionGroupId = QuestionGroupId;
}

public String getQuestionGroup() {
    return QuestionGroup;
}

public void setQuestionGroup(String QuestionGroup) {
    this.QuestionGroup = QuestionGroup;
}

public String getExample() {
    return Example;
}

public void setExample(String Example) {
    this.Example = Example;
}

public String getInstruction() {
    return Instruction;
}

public void setInstruction(String Instruction) {
    this.Instruction = Instruction;
}

public int getQuestionTypeId() {
    return QuestionTypeId;
}

public void setQuestionTypeId(int QuestionTypeId) {
    this.QuestionTypeId = QuestionTypeId;
}

public String getQuestionType() {
    return QuestionType;
}

public void setQuestionType(String QuestionType) {
    this.QuestionType = QuestionType;
}

public String getParagraph() {
    return Paragraph;
}

public void setParagraph(String Paragraph) {
    this.Paragraph = Paragraph;
}

public List<QuestionBean> getQuestion() {
    return Question;
}

public void setQuestion(List<QuestionBean> Question) {
    this.Question = Question;
}

public static class QuestionBean {
    public int QuestionOptionId;
    public String ListeningFile;
    public Object ListeningStartTime;
    public int QuestionId;
    public String Questions;
    public String QuestionNo;
    public int QuestionOptionNo;
    public int QuestionGroupId;
    public int QuestionTypeId;
    public String answer;
    public boolean NextLine;
    public String studentanswer;
    public String ParagraphQuestion;
    public String Answershow;
    public boolean OptionList;
    public String Questionanswer;
    public String Remarks;
    /**
     * QuestionOptionId : 9858
     * QuestionOption : Not all doctors are persuaded
     * QuestionId : 291
     * QuestionOptionNo : i
     * Answer : null
     * questionanswer : false
     */

    public List<OptionsBean> Options;

    public static List<QuestionBean> arrayQuestionBeanFromData(String str, String key) {

        try {
            JSONObject jsonObject = new JSONObject(str);
            Type listType = new TypeToken<ArrayList<QuestionBean>>() {
            }.getType();

            return new Gson().fromJson(jsonObject.getString(str), listType);

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

        return new ArrayList();


    }

    public int getQuestionOptionId() {
        return QuestionOptionId;
    }

    public void setQuestionOptionId(int QuestionOptionId) {
        this.QuestionOptionId = QuestionOptionId;
    }

    public String getListeningFile() {
        return ListeningFile;
    }

    public void setListeningFile(String ListeningFile) {
        this.ListeningFile = ListeningFile;
    }

    public Object getListeningStartTime() {
        return ListeningStartTime;
    }

    public void setListeningStartTime(Object ListeningStartTime) {
        this.ListeningStartTime = ListeningStartTime;
    }

    public int getQuestionId() {
        return QuestionId;
    }

    public void setQuestionId(int QuestionId) {
        this.QuestionId = QuestionId;
    }

    public String getQuestions() {
        return Questions;
    }

    public void setQuestions(String Questions) {
        this.Questions = Questions;
    }

    public String getQuestionNo() {
        return QuestionNo;
    }

    public void setQuestionNo(String QuestionNo) {
        this.QuestionNo = QuestionNo;
    }

    public int getQuestionOptionNo() {
        return QuestionOptionNo;
    }

    public void setQuestionOptionNo(int QuestionOptionNo) {
        this.QuestionOptionNo = QuestionOptionNo;
    }

    public int getQuestionGroupId() {
        return QuestionGroupId;
    }

    public void setQuestionGroupId(int QuestionGroupId) {
        this.QuestionGroupId = QuestionGroupId;
    }

    public int getQuestionTypeId() {
        return QuestionTypeId;
    }

    public void setQuestionTypeId(int QuestionTypeId) {
        this.QuestionTypeId = QuestionTypeId;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public boolean isNextLine() {
        return NextLine;
    }

    public void setNextLine(boolean NextLine) {
        this.NextLine = NextLine;
    }

    public String getStudentanswer() {
        return studentanswer;
    }

    public void setStudentanswer(String studentanswer) {
        this.studentanswer = studentanswer;
    }

    public String getParagraphQuestion() {
        return ParagraphQuestion;
    }

    public void setParagraphQuestion(String ParagraphQuestion) {
        this.ParagraphQuestion = ParagraphQuestion;
    }

    public String getAnswershow() {
        return Answershow;
    }

    public void setAnswershow(String Answershow) {
        this.Answershow = Answershow;
    }

    public boolean isOptionList() {
        return OptionList;
    }

    public void setOptionList(boolean OptionList) {
        this.OptionList = OptionList;
    }

    public String getQuestionanswer() {
        return Questionanswer;
    }

    public void setQuestionanswer(String Questionanswer) {
        this.Questionanswer = Questionanswer;
    }

    public String getRemarks() {
        return Remarks;
    }

    public void setRemarks(String Remarks) {
        this.Remarks = Remarks;
    }

    public List<OptionsBean> getOptions() {
        return Options;
    }

    public void setOptions(List<OptionsBean> Options) {
        this.Options = Options;
    }

    public static class OptionsBean {
        public int QuestionOptionId;
        public String QuestionOption;
        public int QuestionId;
        public String QuestionOptionNo;
        public Object Answer;
        public String questionanswer;

        public static List<OptionsBean> arrayOptionsBeanFromData(String str, String key) {

            try {
                JSONObject jsonObject = new JSONObject(str);
                Type listType = new TypeToken<ArrayList<OptionsBean>>() {
                }.getType();

                return new Gson().fromJson(jsonObject.getString(str), listType);

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

            return new ArrayList();


        }

        public int getQuestionOptionId() {
            return QuestionOptionId;
        }

        public void setQuestionOptionId(int QuestionOptionId) {
            this.QuestionOptionId = QuestionOptionId;
        }

        public String getQuestionOption() {
            return QuestionOption;
        }

        public void setQuestionOption(String QuestionOption) {
            this.QuestionOption = QuestionOption;
        }

        public int getQuestionId() {
            return QuestionId;
        }

        public void setQuestionId(int QuestionId) {
            this.QuestionId = QuestionId;
        }

        public String getQuestionOptionNo() {
            return QuestionOptionNo;
        }

        public void setQuestionOptionNo(String QuestionOptionNo) {
            this.QuestionOptionNo = QuestionOptionNo;
        }

        public Object getAnswer() {
            return Answer;
        }

        public void setAnswer(Object Answer) {
            this.Answer = Answer;
        }

        public String getQuestionanswer() {
            return questionanswer;
        }

        public void setQuestionanswer(String questionanswer) {
            this.questionanswer = questionanswer;
        }
    }
}

}

我已经使用Okhttp库进行网络操作。

下面是使用gson

解析json的代码
Gson gson = new Gson();
ReadingTest[] readingTest = gson.fromJson(responseData,ReadingTest[].class);

responseData: - 是我从服务器获取的json响应。

我可以看到ReadingTest对象中的所有内容,但不知道如何从此对象中提取值。任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下位置从任何对象的数组中提取内容:

readingTest[position].<requestedValueGetMethod>();

例如,如果你想获得测试字符串,你将使用getTest()方法得到它:

readingTest[position].getTest();

所有其他属性都可以类似的方式使用。