2016-05-17 2 views
-1

Я новичок в Retrofit 2.0 У меня есть 1 Ws in to to that i am get this response Я сделал pojo для этого, используя http://www.jsonschema2pojo.org/, но я не могу получить qid и id. хотя я получаю que и ans оба, но не id обоим, что может быть причиной?android retrofit 2 response get problem

, и я получаю rawResponse также, что это нежелательная часть. что может быть причиной, пожалуйста, помогите мне.

{ 
    "paper": [{ 
      "que": { 
       "qid": "1", 
       "question": "????????????????" 
      }, 
      "ans": [{ 
       "id": "1", 
       "answer": "uiuyiyityu" 
      }, { 
       "id": "2", 
       "answer": "ytrretwr etret" 

      }, { 
       "id": "3", 
       "answer": "retre retret" 
      }, { 
       "id": "4", 
       "answer": "rtretret" 
      }] 
     } 

    ] 
} 

в ответ я просто получить 05-17 05: 43: 03,380 4395-getFeed> => {

"exam": [{ 
     "ans": [{ 
      "answer": "sdfdsrewwer" 
     }, { 
      "answer": "ewrewrewr" 
     }, { 
      "answer": "e"wrewrewr 
     }, { 
      "answer": "e"wrewr" 
     }], 
     "que": { 
      "question": "retreret retret?" 
     } 
    }, 

Я создал POJO как

this img

я am получение response.body().getExam().get(1).getQue().getQueId() = null

любезно помогите мне ...

+0

От того, где вы обращаетесь к 'qid' и' id'? Вы пытаетесь распечатать его или использовать его в некоторой переменной? –

+0

что ?? я не понимаю, что вы говорите? – Android

+0

Как вы получаете доступ к qid и id? –

ответ

1

Ваш POJO класс выглядеть следующим образом:

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

import java.util.ArrayList; 
import java.util.List; 

/** 
* Created by ln-141 on 17/5/16. 
*/ 
public class PaperClass { 
    @SerializedName("paper") 
    @Expose 
    private List<Paper> paper = new ArrayList<Paper>(); 

    /** 
    * 
    * @return 
    * The paper 
    */ 
    public List<Paper> getPaper() { 
     return paper; 
    } 

    /** 
    * 
    * @param paper 
    * The paper 
    */ 
    public void setPaper(List<Paper> paper) { 
     this.paper = paper; 
    } 

    public class An { 

     @SerializedName("id") 
     @Expose 
     private String id; 
     @SerializedName("answer") 
     @Expose 
     private String answer; 

     /** 
     * 
     * @return 
     * The id 
     */ 
     public String getId() { 
      return id; 
     } 

     /** 
     * 
     * @param id 
     * The id 
     */ 
     public void setId(String id) { 
      this.id = id; 
     } 

     /** 
     * 
     * @return 
     * The answer 
     */ 
     public String getAnswer() { 
      return answer; 
     } 

     /** 
     * 
     * @param answer 
     * The answer 
     */ 
     public void setAnswer(String answer) { 
      this.answer = answer; 
     } 

    } 
    public class Paper { 

     @SerializedName("que") 
     @Expose 
     private Que que; 
     @SerializedName("ans") 
     @Expose 
     private List<An> ans = new ArrayList<An>(); 

     /** 
     * 
     * @return 
     * The que 
     */ 
     public Que getQue() { 
      return que; 
     } 

     /** 
     * 
     * @param que 
     * The que 
     */ 
     public void setQue(Que que) { 
      this.que = que; 
     } 

     /** 
     * 
     * @return 
     * The ans 
     */ 
     public List<An> getAns() { 
      return ans; 
     } 

     /** 
     * 
     * @param ans 
     * The ans 
     */ 
     public void setAns(List<An> ans) { 
      this.ans = ans; 
     } 

    } 
    public class Que { 

     @SerializedName("qid") 
     @Expose 
     private String qid; 
     @SerializedName("question") 
     @Expose 
     private String question; 

     /** 
     * 
     * @return 
     * The qid 
     */ 
     public String getQid() { 
      return qid; 
     } 

     /** 
     * 
     * @param qid 
     * The qid 
     */ 
     public void setQid(String qid) { 
      this.qid = qid; 
     } 

     /** 
     * 
     * @return 
     * The question 
     */ 
     public String getQuestion() { 
      return question; 
     } 

     /** 
     * 
     * @param question 
     * The question 
     */ 
     public void setQuestion(String question) { 
      this.question = question; 
     } 

    } 
} 

Проверьте выбранный вариант в ниже скриншоте для создания класса Pojo.

enter image description here

+0

no screen shot загрузить – Android

+0

Я тебя не понимаю? – pRaNaY

1

Можете ли вы разместить свой код ответа ??

Но попробуйте это, response.body().getQue().getQid() в способе onRespone.

public class MyResponseBody{private Que que;} ** Que является объект, так и нужно сделать новый объект

public class Que{private String qid;}

PS: но метод прибудет depense ур модели/POJO.

+0

я отправил свой код ответа "экзамен": [{ "ANS": [{ "ответ": "sdfdsrewwer" }, { "ответ": "ewrewrewr" }, { "ответ": "е" wrewrewr }, { "ответ": "е" wrewr " }], "дие": { "вопрос":" retreret г etret? " } }, – Android

+0

sry просто прочитал его, но у вас есть ответ. Если у вас есть проблема, просто отправьте ее снова ^^ – Code21K

1

Прежде всего, ваш исходный ответ неверен. Если вы ответили в http://jsonlint.com/

Вы получите ошибку синтаксического разбора в строке 12. Даже jsonschema2pojo также отображает ошибку в вашем сыром ответе. Прежде всего изменить его, как

{ 
    "paper": [ 
    { 
     "que": { 
     "qid": "1", 
     "question": "????????????????" 
     }, 
     "ans": [ 
     { 
      "id": "1", 
      "answer": "uiuyiyityu" 
     }, 
     { 
      "id": "2", 
      "answer": "ytuyutyuty" 
     }, 
     { 
      "id": "3", 
      "answer": "retre retret" 
     }, 
     { 
      "id": "4", 
      "answer": "rtretret" 
     } 
     ] 
    } 

    ] 
} 

Затем сделать POJO на jsonschema2pojo инструмента. Инструмент создаст четыре различных POJO, как следующее:

import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

@Generated("org.jsonschema2pojo") 
public class An { 

@SerializedName("id") 
@Expose 
private String id; 
@SerializedName("answer") 
@Expose 
private String answer; 

/** 
* 
* @return 
* The id 
*/ 
public String getId() { 
return id; 
} 

/** 
* 
* @param id 
* The id 
*/ 
public void setId(String id) { 
this.id = id; 
} 

/** 
* 
* @return 
* The answer 
*/ 
public String getAnswer() { 
return answer; 
} 

/** 
* 
* @param answer 
* The answer 
*/ 
public void setAnswer(String answer) { 
this.answer = answer; 
} 

} 

import java.util.ArrayList; 
import java.util.List; 
import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

@Generated("org.jsonschema2pojo") 
public class Paper { 

@SerializedName("paper") 
@Expose 
private List<Paper_> paper = new ArrayList<Paper_>(); 

/** 
* 
* @return 
* The paper 
*/ 
public List<Paper_> getPaper() { 
return paper; 
} 

/** 
* 
* @param paper 
* The paper 
*/ 
public void setPaper(List<Paper_> paper) { 
this.paper = paper; 
} 

} 

import java.util.ArrayList; 
import java.util.List; 
import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

@Generated("org.jsonschema2pojo") 
public class Paper_ { 

@SerializedName("que") 
@Expose 
private Que que; 
@SerializedName("ans") 
@Expose 
private List<An> ans = new ArrayList<An>(); 

/** 
* 
* @return 
* The que 
*/ 
public Que getQue() { 
return que; 
} 

/** 
* 
* @param que 
* The que 
*/ 
public void setQue(Que que) { 
this.que = que; 
} 

/** 
* 
* @return 
* The ans 
*/ 
public List<An> getAns() { 
return ans; 
} 

/** 
* 
* @param ans 
* The ans 
*/ 
public void setAns(List<An> ans) { 
this.ans = ans; 
} 

} 

import javax.annotation.Generated; 
import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

@Generated("org.jsonschema2pojo") 
public class Que { 

@SerializedName("qid") 
@Expose 
private String qid; 
@SerializedName("question") 
@Expose 
private String question; 

/** 
* 
* @return 
* The qid 
*/ 
public String getQid() { 
return qid; 
} 

/** 
* 
* @param qid 
* The qid 
*/ 
public void setQid(String qid) { 
this.qid = qid; 
} 

/** 
* 
* @return 
* The question 
*/ 
public String getQuestion() { 
return question; 
} 

/** 
* 
* @param question 
* The question 
*/ 
public void setQuestion(String question) { 
this.question = question; 
} 

} 

Теперь вы можете получить QID и идентификатор очень легко, вызывая методы ваших POJOs. Используйте этот код для получения qid и id.

Paper paper = new Paper(); 
List<Paper_> papers = paper.getPaper(); 

for(Paper_ paper_ : papers){ 
    int qid = paper_.getQue().getQid(); 
    List<An> answers = paper_.getAns(); 
    for(An answer : answers){ 
     int ansId = answer.getId(); 
    } 
} 

Надеюсь, что это сработает.

+0

, как только проверьте мою очередь. это был тип ошибки – Android

+0

@ Андроид все еще ваш ответ кажется странным недействительным. – aquib23

Смежные вопросы