使用序列化在Retrofit 2.1中的JSON对象

时间:2016-09-07 04:02:25

标签: android json serialization retrofit2 gson

我正在使用Retrofit Library进行异步请求但在此之前我需要将Json转换为java对象。我看过很少的教程,并且能够理解。然后我决定使用Nomadlist api自己做一个项目,json链接是https://nomadlist.com/api/v2/list/cities/mumbai-india/places/work

我很困惑如何制作getter和setter对象

return Json(new { link = new UrlHelper(Request.RequestContext).Content("~/img/Post/" + fileName) }, JsonRequestBehavior.AllowGet);

或从结果数组中获取

的getter和setter
"updated":{"epoch":1473220041,"time":"2016-09-07T03:47:21+00:00","cache":false} 

我已经完成了以下课程。

"city":{"name":"Thane","slug":"thane-india","url":"\/thane-india"}. 

enter image description here

我添加了我正在使用的Json部分的屏幕截图。城市国家和地区部分的正确格式是什么。

3 个答案:

答案 0 :(得分:0)

您可以使用以下格式来完成所需的工作。

public class City {
    @SerializedName("name")
    String name;
    @SerializedName("slug")
    String slug;
    @SerializedName("url")
    String url;
}

public class Country {

}

public class Business {
    @SerializedName("name")
    String name;
    @SerializedName("img")
    String img;
    @SerializedName("url")
    String url;
    @SerializedName("type")
    String type;
    @SerializedName("city")
    City city;
    @SerializedName("country")
    Country country;
}

CityCountry和您申请所需的任何其他JSONObject创建单独的课程。并且,在主模型类中创建它的对象(我使用了Business)。

答案 1 :(得分:0)

请尝试以下格式:

创建POJO JsonResponse.Class

    public class res {
        @SerializedName("name")
        String name;
        @SerializedName("img")
        String img;
        @SerializedName("url")
        String url;
        @SerializedName("type")
        String type;

        @SerializedName("country")
        Country country;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getImg() {
            return img;
        }

        public void setImg(String img) {
            this.img = img;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public Country getCountry() {
            return country;
        }

        public void setCountry(Country country) {
            this.country = country;
        }
    }

    public class Country {

    }

创建POJO类Result.class

       public class Result{

    @SerializedName("name")
    String name;
    @SerializedName("img")
    String img;
    @SerializedName("url")
    String url;
    @SerializedName("type")
    String type; 
    @SerializedName("result")
    ArrayList<Result> result;

    @SerializedName("country")
    Country country;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public ArrayList<Result> getResult() {
        return result;
    }

    public void setResult(ArrayList<Result> result) {
        this.result = result;
    }

    public Country getCountry() {
        return country;
    }

    public void setCountry(Country country) {
        this.country = country;


 }
}

创建POJO类Updated.class

public class Updated{
        @SerializedName("epoch")
        String epoch;
        @SerializedName("time")
        String time;
        @SerializedName("ache")
        String ache;
    public String getEpoch() {
    return epoch;
}

public void setEpoch(String epoch) {
    this.epoch = epoch;
}

public String getTime() {
    return time;
}

public void setTime(String time) {
    this.time = time;
}

public String getAche() {
    return ache;
}

public void setAche(String ache) {
    this.ache = ache;
}

    }

答案 2 :(得分:0)

转到enter link description here超过你的回复并选择Source type:Json和annotation样式Annotation样式:在右边,提供包名和类名命中预览最后你会得到你的模型类