我的改造json课程应该如何?

时间:2015-03-19 11:51:48

标签: android json retrofit

我有这样的json

  

{     “句子”: [       {         “trans”:“它有效。”,         “orig”:“Этоработает。”,         “translit”:“”,         “src_translit”:“Eto rabotayet。”       }     ]     “src”:“ru”,     “server_time”:12   }

代码:

 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;
}

但我总是收到这样的错误“预期BEGIN_OBJECT但在第1行是BEGIN_ARRAY”

我的班级怎么样?感谢。

2 个答案:

答案 0 :(得分:1)

如果请求响应是这样的

{"sentences":
  [
  {
   "trans":"It works.","orig":"Это работает.",
    "translit":"","src_translit":"Eto rabotayet.",
    "src":"ru",
    "server_time":12
  }
]
}

然后,你的课程将是

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;
    }
}

主要反应类

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;
 }

}

访问Json Schema 2 Pojo

答案 1 :(得分:0)

这是JSON GEN的另一个很棒的东西 - 客户代码生成工具http://jsongen.byingtondesign.com/