Java 我应该如何定义与Gson的协议的模型类?

Java 我应该如何定义与Gson的协议的模型类?,java,android,json,gson,Java,Android,Json,Gson,我有以下JSON: { _id: "5252fdf424f1e7fbf7000004", address: "Calle 1000", city: "Concepción", created_at: "2013-10-07T18:31:19.375Z", description: "", name: "Joctos", phone: "94967994", updated_at: "2013-12-09T13:03:07.328

我有以下JSON:

  {
    _id: "5252fdf424f1e7fbf7000004",
    address: "Calle 1000",
    city: "Concepción",
    created_at: "2013-10-07T18:31:19.375Z",
    description: "",
    name: "Joctos",
    phone: "94967994",
    updated_at: "2013-12-09T13:03:07.328Z",
    happy_hour: {
        active: false,
        type: 1,
        all_day: false,
        start: "2013-12-17T03:30:00.000Z",
        end: "2013-12-17T05:00:00.000Z"
    }
}
告诉他们接收并使用JSON GSON让我相信一个对象,问题是该对象是如何定义的

public class StoreModel {

@SerializedName("_id")
private String _id;

@SerializedName("address")
private String address;

@SerializedName("city")
private String city;

@SerializedName("created_at")
private String created_at;

@SerializedName("description")
private String description;

@SerializedName("name")
private String name;

@SerializedName("phone")
private String phone;

@SerializedName("updated_at")
private String updated_at;

public String get_id() {
    return this._id;
}

public void set_id(String _id) {
    this._id = _id;
}

public String getAddress() {
    return this.address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getCity() {
    return this.city;
}

public void setCity(String city) {
    this.city = city;
}

public String getCreated_at() {
    return this.created_at;
}

public void setCreated_at(String created_at) {
    this.created_at = created_at;
}

public String getDescription() {
    return this.description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getName() {
    return this.name;
}

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

public String getPhone() {
    return this.phone;
}

public void setPhone(String phone) {
    this.phone = phone;
}

public String getUpdated_at() {
    return this.updated_at;
}

public void setUpdated_at(String updated_at) {
    this.updated_at = updated_at;
}
}


我应该如何定义我的模型以获取“happy_hours”数据?

StoreModel类将包含happy_hours的对象

创建一个具有适当属性的HappyHours类,并将HappyHours属性添加到StoreModel中:

@SerializedName("happy_hours")
private HappyHours happyHours;
对于日期对象,请尝试“日期开始”和“日期结束” 如果它不工作,您必须编写一个适配器:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new DateGsonDeserializer());
gsonBuilder.create();

public class DateGsonDeserializer implements JsonDeserializer<Date> {

    @Override
    public Date deserialize(final JsonElement jsonElement, final Type type, final JsonDeserializationContext context) throws JsonParseException {
            // just write the right formatter from SimpleDateFormat
        return formatToDate(jsonElement.getAsString())
    }

}
GsonBuilder GsonBuilder=new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class,新的DateGsonDeserializer());
gsonBuilder.create();
公共类DateGsonDeserializer实现JsonDeserializer{
@凌驾
公共日期反序列化(最终JsonElement JsonElement、最终类型类型、最终JsonDeserializationContext上下文)引发JsonParseException{
//只需从SimpleDataFormat编写正确的格式化程序
返回formatToDate(jsoneElement.getAsString())
}
}

您可以使用与其他键类似的方式为“happy_hour”创建getter setter。如何键入属性“start”和“end”?如何键入属性“start”和“end”?