使用改造将json解析为POJO

时间:2016-03-06 18:43:41

标签: java android json retrofit pojo

我正在尝试使用改造将json解析为POJO,但不断收到错误。 它似乎得到了数据,据我所知,我从logcat中读取并正确解析了json。但它返回succes = false并且不返回responsedata对象。 错误类型和错误消息读取为null。 我不知道出了什么问题,并希望对解决方案提出任何建议或如何找到错误。

的Json

{
  "competition_info": {
    "headline": "competition",
    "description": "description for competition.",
    "accept_button": "OK",
    "open_terms_button": "Open info"
  },
  "terms": {
    "html": "a website in html"
  }
    }

MyPojo

public class AnnComResponses{
    @SerializedName("competition_info")
    public CompetitionInfo competitionInfo;
    @SerializedName("terms")
    public Terms terms;

    public class Terms{

        @SerializedName("html")
        public String html;

        public String getTerms() {
            return html;
        }
    }

    public class CompetitionInfo{
        @SerializedName("headline")
        public String headline;
        @SerializedName("description")
        public String description;
        @SerializedName("accept_button")
        public String acceptButton;
        @SerializedName("open_terms_button")
        public String openTermsButton;

        public String getHeadline() {
            return headline;
        }

        public String getDescription() {
            return description;
        }

        public String getAcceptButton() {
            return acceptButton;
        }

        public String getOpenTermsButton() {
            return openTermsButton;
        }

    }
}

2 个答案:

答案 0 :(得分:1)

尝试使用GSON转换器进行改造,如下所示:

RestAdapter restAdapter = new RestAdapter.Builder()
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .setConverter(new GsonConverter(new GsonBuilder()).create()))
                .setEndpoint("your api end point goes here")
                .build(); 
YourAPI api = restAdapter.create(YourAPI.class);

答案 1 :(得分:0)

首先,您的主类中有几个类。将它们分成单独的文件,不要将它们保存在同一个类中。在您的主要课程中,您需要为您的属性竞赛信息和术语添加setter和getter。此外,作为一种良好的风格使财产私有化,你的吸气剂和制定者保持公开。