繁体   English   中英

复杂的JSON到pojo

[英]complicated json to pojo

您能帮我为json这样设计pojo类,将属性用作值吗?

{"1":
    {
    "12.08.2014":
        {"start_time":"09:00","end_time":"11:00"},
    "15.08.2014":
        {"start_time":"09:00","end_time":"11:00"},
    }
,
"2":
    {
    "25.08.2014":
        {"start_time":"09:00","end_time":"11:00"},
    "27.08.2014":
        {"start_time":"09:00","end_time":"11:00"},
    "29.08.2014":
        {"start_time":"09:00","end_time":"11:00"}
    }
}

我想要这样的东西

class POJO {
    class Schedule{
        @JsonProperty("start_time")
        String startTime;
        @JsonProperty("end_time")
        String endTime;

        @JSON???????
        String date;
    }
    @?????????
    List<Schedule> scheduleList;
}

您可以将其保留为地图地图。 以及内部时间详细信息作为自定义对象。 因此最终结果将类似于Map<String, Map<String, Time>> 然后,您可以使用GsonJackson的json解析器来解析值。 例如

杰克逊风格

public class Time {
    @JsonProperty(value="start_time")
    private String startTime;
    @JsonProperty(value="end_time")
    private String endTime;

    // Getter Setter
}

ObjectMapper mapper = new ObjectMapper();
Map<String, Map<String, Time>> data = mapper.readValue(json, new TypeReference<Map<String, Map<String, Time>>>() {});

格森风格

class Time {
    @SerializedName(value="start_time")
    private String startTime;
    @SerializedName(value="end_time")
    private String endTime;

    // Getters Setters
}

Gson gson = new Gson();
Map<String, Map<String, Time>> data = gson.fromJson(json, new TypeToken<Map<String, Map<String, Time>>>() {}.getType());

您可以尝试如下操作:

class MyItem{
    String id;
    List<MyEvent> events;
}

class MyEvent{
    Date eventDate;
    int startTime;
    int endTime;
}

当然,您需要编写一个解析器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM