有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java访问dto列表中的dto值

我有一个json响应,在这个表单下

"calendarList": [
        {
            "id": "1",
            "event": {
                "id": "11",
                "name": "Track the working hours",
                "color": "blue",
                "place": "office",
            }
         },
         {
            "id": "2",
            "event": {
                "id": "12",
                "name": "Finish DTOs",
                "color": "blue",
                "place": "office",
            }
         }
]

如何访问位置值?对于列表中的所有dto对象,位置值都是相同的,即OFFICE,因此我只需要访问其中一个位置值。 CalendarDto列表包含多个EventDto对象,具有属性id、名称、颜色和位置

final List<CalendarDto> calendarList = calendarService.getCalendars(startDate, endDate);
EventDto eventDto = new EventDto();
    EventSender sender = new EventSender ("EVENTS");
    sender.withData("place", calendarList.stream()  -> this is where I tried to get the value, but it didn't work
        .findFirst(eventDto.getPlace()));

共 (1) 个答案

  1. # 1 楼答案

    您可以使用流的filterfindFirst方法的组合

    final List<CalendarDto> calendarList = calendarService.getCalendars(startDate, endDate);
    EventDto eventDto = new EventDto();
        EventSender sender = new EventSender ("EVENTS");
        sender.withData("place", calendarList.stream()
            .filter(ele -> ele.getPlace().equals(eventDto.getPlace())).findFirst());
    

    注意:-eleinto filter方法将是CalendarDto类的对象,这里需要替换相应的方法以获得位置值