Reputation: 3971
I have such json
{ "sentences": [ { "trans": "It works.", "orig": "Это работает.", "translit": "", "src_translit": "Eto rabotayet." } ], "src": "ru", "server_time": 12 }
Code :
public interface TraslatorRetrofit {
@GET("/translate_a/t?client=x&text=text&hl=ru&sl=ru&tl=en")
void listRepos (@Query("text") String text, Callback<List<TranslateResp>> cb);}
public class TranslateResp {
private List<String> sentences;
}
But i always recieve such error "Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column"
How should my class look like? Thanks.
Upvotes: 0
Views: 114
Reputation: 3971
and here is another great stuff for JSON GEN - CLIENT CODE GENERATION TOOL http://jsongen.byingtondesign.com/
Upvotes: 0
Reputation: 9009
If request response is like this
{"sentences":
[
{
"trans":"It works.","orig":"Это работает.",
"translit":"","src_translit":"Eto rabotayet.",
"src":"ru",
"server_time":12
}
]
}
then, your classes will be
public class Sentence {
@Expose
private String trans;
@Expose
private String orig;
@Expose
private String translit;
@SerializedName("src_translit")
@Expose
private String srcTranslit;
@Expose
private String src;
@SerializedName("server_time")
@Expose
private Integer serverTime;
public String getTrans() {
return trans;
}
public void setTrans(String trans) {
this.trans = trans;
}
public String getOrig() {
return orig;
}
public void setOrig(String orig) {
this.orig = orig;
}
public String getTranslit() {
return translit;
}
public void setTranslit(String translit) {
this.translit = translit;
}
public String getSrcTranslit() {
return srcTranslit;
}
public void setSrcTranslit(String srcTranslit) {
this.srcTranslit = srcTranslit;
}
public String getSrc() {
return src;
}
public void setSrc(String src) {
this.src = src;
}
public Integer getServerTime() {
return serverTime;
}
public void setServerTime(Integer serverTime) {
this.serverTime = serverTime;
}
}
Main Response Class
public class TranslateResp {
@Expose
private List<Sentence> sentences = new ArrayList<Sentence>();
public List<Sentence> getSentences() {
return sentences;
}
public void setSentences(List<Sentence> sentences) {
this.sentences = sentences;
}
}
Do visit Json Schema 2 Pojo
Upvotes: 1