我有一个独特的情况,我必须从json的深层嵌套对象中获取某些时间。这有点复杂,我找不到解决方案,所以正在寻找解决方案
我有一个JSON,如下所示:
[{ "mySpaceId": 73220, "myBuildingId": 14019, "myFloorId": 10569, "myFloorNumber": "4", "myFloorName": "4th Floor", "spaceName": "My Room 4", "capacity": 5, "type": "huddle", "busyAt": [] }, { "mySpaceId": 73219, "myBuildingId": 14019, "myFloorId": 10569, "myFloorNumber": "4", "myFloorName": "4th Floor", "spaceName": "My room 5", "description": null, "capacity": 4, "type": "huddle", "timeZone": "America/New_York", "busyAt": [{ "from": "2019-06-07T23:00:00+0000", "to": "2019-06-07T23:15:00+0000", "events": [{ "id": "109142028", "series_id": null, "recurrence_id": null, "uid": "ABCDE", "space_id": 73219, "start": { "date_time": "2019-06-07T19:00:00-0400", "time_zone": "America/New_York" }, "end": { "date_time": "2019-06-07T19:15:00-0400", "time_zone": "America/New_York" }, "started_at": "2019-06-07T19:00:00-0400", "ended_at": "2019-06-07T19:15:00-0400" }] }] } ]
我用这个:http : //www.jsonschema2pojo.org/从上面的json字符串生成一个类。我想知道如何检索“ started_at”:“ 2019-06-07T19:00:00-0400”,
从busyAt->事件到上述站点生成的主模型类中?说出与mySpaceId相同的级别。我目前使用以下内容:
public List<BusyAt> getBusyAt() { return busyAt; } public void setBusyAt(List<BusyAt> busyAt) { this.busyAt = busyAt; }
有什么方法可以检索此级别的starts_at并以8:00 am的格式解析日期和时间?在我的代码中使用它。
任何想法如何去做?谢谢!请让我知道这是否令人困惑或需要进一步说明,很高兴发布更多代码。
我用这个:http : //www.jsonschema2pojo.org/从上面的json字符串生成一个类。我想知道如何从busyAt->事件中检索“ started_at”:“ 2019-06-07T19:00:00-0400”到上述站点生成的主模型类中?说出与mySpaceId相同的级别。我目前使用以下内容:
如果我正确地理解了您,则说明您已经使用www.jsonschema2pojo.org创建了以下类别:-
我假设您想直接从最顶层的类(“实体”)检索每个列表的“第一”条目(如果存在)
就像是: -
如果busyAt或事件列表为空或为null,则entity.busyAt(0).events(0).startedAt ,然后为startedAt返回空字符串。
您可以做的是在“ Entity”类(包含mySpaceId和List的根类)中创建以下方法。
public String getStartedAt(){ //check if the busyAt List contains items or not. if (busyAt ==null || busyAt.isEmpty()){ return ""; } //take the list of events from the first busyAt in the array List<Event> eventList = busyAt.get(0).getEvents(); //check if the event List contains items or not. if (eventList ==null || eventList.isEmpty()){ return ""; } //return the StartAt value of the first event. return eventList.get(0).getStartedAt(); }