0

I have this JSON array object response

{ "Exam":[
{

    "mock_test":
        [
            {
                id: "14",
                option_a: "android developer",
                option_b: "programmer",
                option_c: "coder",
                option_d: "developer",
                is_correct: "1",
                question_number: "14",
                questions: "hello this pavan sharma",
                            
            },
            {
                id: "14",
                option_a: "android developer",
                option_b: "programmer",
                option_c: "coder",
                option_d: "developer",
                is_correct: "1",
                question_number: "14",
                questions: "hello this pavan sharma",
                            
            },
            {
                id: "14",
                option_a: "android developer",
                option_b: "programmer",
                option_c: "coder",
                option_d: "developer",
                is_correct: "1",
                question_number: "14",
                questions: "hello this pavan sharma",
                        
            },  

        ]
},
{
    "mock_test":
    [
        {
            id: "14",
            option_a: "android developer",
            option_b: "programmer",
            option_c: "coder",
            option_d: "developer",
            is_correct: "1",
            question_number: "14",
            questions: "hello this pavan sharma",
                        
        },
        {
            id: "14",
            option_a: "android developer",
            option_b: "programmer",
            option_c: "coder",
            option_d: "developer",
            is_correct: "1",
            question_number: "14",
            questions: "hello this pavan sharma",
                    
        },
        {
            id: "14",
            option_a: "android developer",
            option_b: "programmer",
            option_c: "coder",
            option_d: "developer",
            is_correct: "1",
            question_number: "14",
            questions: "hello this pavan sharma",   
        },  

    ]

}
]}

I have created model class like

public class ModelClass implements Serializable {

@SerializedName("id")
@Expose
private int id;

@SerializedName("option_a")
@Expose
private String option_a;

@SerializedName("option_b")
@Expose
private String option_b;

@SerializedName("option_c")
@Expose
private String option_c;

public ModelClass(int id, String option_a, String option_b, String option_c) {
    this.id = id;
    this.option_a = option_a;
    this.option_b = option_b;
    this.option_c = option_c;
}

public int getId() {
    return id;
}

public String getOption_a() {
    return option_a;
}

public String getOption_b() {
    return option_b;
}

public String getOption_c() {
    return option_c;
}}

another model class is

public class DataModelClass {

@SerializedName("mock_test")
@Expose
private ArrayList<ModelClass> mockTest=null;

public DataModelClass(ArrayList<ModelClass> mockTest) {
    this.mockTest = mockTest;
}

public ArrayList<ModelClass> getMockTest() {
    return mockTest;
}

another model class is

public class MainModelClass  implements Serializable {

@SerializedName("Exam")
@Expose
private ArrayList<DataModelClass> exam=null;

public MainModelClass(ArrayList<DataModelClass> exam) {
    this.exam = exam;
}

public ArrayList<DataModelClass> getExam() {
    return exam;
}

In MainActivity

        apiInterface=ApiClient.getRetrofitInstance().create(API.class);
    Call<DataModelClass> call = apiInterface.getEmpData();

    call.enqueue(new Callback<DataModelClass>() {
        @Override
        public void onResponse(Call<DataModelClass> call, Response<DataModelClass> response) {
            progressDialog.dismiss();
            
            
            
            
        }

        @Override
        public void onFailure(Call<DataModelClass> call, Throwable t) {
            Toast.makeText(getApplicationContext(),""+t,Toast.LENGTH_SHORT).show();
        }
    });

please tell me how can i call inner object like id,option_a, option_b, option_c etc... i can create recycler view for this but i just want to know how to call these inner objects.

3
  • You can use my answer at this : stackoverflow.com/questions/62625845/… Commented Sep 20, 2020 at 7:43
  • What is exactly your problem? Is the JSON you provided, the whole response from API? Are you successfully getting the response from Retrofit? Or maybe you cannot get the response form Retrofit because your models are not properly written? Commented Sep 20, 2020 at 8:27
  • I am getting null into response.body() . Can you please tell me that what I have to write in onRespose method so i can send all data into adapter Commented Sep 20, 2020 at 8:40

3 Answers 3

0

Use MainModelClass as Generics instead:

Call<MainModelClass> call = apiInterface.getEmpData();

If you still have trouble getting the right response from server, then you need these 3 POJOs:

public class MainResponse {
@SerializedName("Exam")
ArrayList<ExamContainer> examContainers;

public ArrayList<ExamContainer> getExamContainers() {
    return examContainers;
}

public void setExamContainers(ArrayList<ExamContainer> examContainers) {
    this.examContainers = examContainers;
}
}

And then:

public class ExamContainer {

@SerializedName("mock_test")
private ArrayList<MockTest> mockTests;


public ArrayList<MockTest> getMockTests() {
    return mockTests;
}

public void setMockTests(ArrayList<MockTest> mockTests) {
    this.mockTests = mockTests;
}
}

And finally :

public class MockTest
{
private String id;

private String option_a;

private String option_b;

private String option_c;

private String option_d;

private String is_correct;

private String question_number;

private String questions;

public void setId(String id){
    this.id = id;
}
public String getId(){
    return this.id;
}
public void setOption_a(String option_a){
    this.option_a = option_a;
}
public String getOption_a(){
    return this.option_a;
}
public void setOption_b(String option_b){
    this.option_b = option_b;
}
public String getOption_b(){
    return this.option_b;
}
public void setOption_c(String option_c){
    this.option_c = option_c;
}
public String getOption_c(){
    return this.option_c;
}
public void setOption_d(String option_d){
    this.option_d = option_d;
}
public String getOption_d(){
    return this.option_d;
}
public void setIs_correct(String is_correct){
    this.is_correct = is_correct;
}
public String getIs_correct(){
    return this.is_correct;
}
public void setQuestion_number(String question_number){
    this.question_number = question_number;
}
public String getQuestion_number(){
    return this.question_number;
}
public void setQuestions(String questions){
    this.questions = questions;
}
public String getQuestions(){
    return this.questions;
}
}

Now you write your call like this:

Call<MainResponse> call = apiInterface.getEmpData();
//rest of your code
Sign up to request clarification or add additional context in comments.

3 Comments

please tell me that how can i send all data of MockTest model class in adapter from onResponse method
@GirrajSharma Send your adapter code, so I can help you.
@sajjad can you help me? github.com/theoyuncu8/data
0

Please check it is not a valid json format missing double quotes for keys

Comments

0

replace above Json with this because your Json format is wrong

{
 "Exam": [
        {
          "mock_test": [
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            },
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            },
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            }
          ]
        },
        {
          "mock_test": [
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            },
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            },
            {
              "id": "14",
              "option_a": "android developer",
              "option_b": "programmer",
              "option_c": "coder",
              "option_d": "developer",
              "is_correct": "1",
              "question_number": "14",
              "questions": "hello this pavan sharma"
            }
          ]
        }
      ]
    }

and replace above model classes with below model classes

  package com.example;

import java.util.List;

public class Exam {

private List<MockTest> mockTest = null;

public List<MockTest> getMockTest() {
return mockTest;
}

public void setMockTest(List<MockTest> mockTest) {
this.mockTest = mockTest;
}

}

=============================

  package com.example;
    
    import java.util.List;
    
    public class Example {
    
    private List<Exam> exam = null;
    
    public List<Exam> getExam() {
    return exam;
    }
    
    public void setExam(List<Exam> exam) {
    this.exam = exam;
    }

=========================================

package com.example;
public class MockTest {

private String id;
private String optionA;
private String optionB;
private String optionC;
private String optionD;
private String isCorrect;
private String questionNumber;
private String questions;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getOptionA() {
return optionA;
}

public void setOptionA(String optionA) {
this.optionA = optionA;
}

public String getOptionB() {
return optionB;
}

public void setOptionB(String optionB) {
this.optionB = optionB;
}

public String getOptionC() {
return optionC;
}

public void setOptionC(String optionC) {
this.optionC = optionC;
}

public String getOptionD() {
return optionD;
}

public void setOptionD(String optionD) {
this.optionD = optionD;
}

public String getIsCorrect() {
return isCorrect;
}

public void setIsCorrect(String isCorrect) {
this.isCorrect = isCorrect;
}

public String getQuestionNumber() {
return questionNumber;
}

public void setQuestionNumber(String questionNumber) {
this.questionNumber = questionNumber;
}

public String getQuestions() {
return questions;
}

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

}
        
        }

Now u get response make to parse as you like

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.