根据我们的要求,响应不正确

Response is not getting proper as per our requirement

我在 java restful API 中使用 spring 安全引导。我想要根据我的要求做出适当的回应。我将向您展示我的数据库 table 并要求回复。我还将向您展示我尝试过的代码。 我已经尝试过,但响应没有按照我的要求得到适当的响应。有人知道吗??怎么做?

  1. 数据库Table

  2. 我想要上面的回复table

"eventColorLegends": [
    {
      "color": "Red",
      "items": [
        "Musician1",
        "Workshop",
        "Seminart"
        ]
    },
    {
      "color": "Black",
      "items": [
        "Product Launches",
        "Incentive Trips"
      ]
    },
    {
      "color": "Green",
      "items": [
        "Dancing",
        "Rotary - Service Club",
        "Historical/Remembrance"
      ]
    },
    {
      "color": "Yellow",
      "items": [
        "Party",
        "Incubator - Accelerator",
        "Leads - Referral"
      ]
    },
    {
      "color": "Orange",
      "items": [
        "Charity",
        "Non-profit",
        "Rotary - Service Club",
        "Historical/Remembrance",

      ]
    },
    {
      "color": "Coffee",
      "items": [
        "Incubator - Accelerator"
      ]
    },
    {
      "color": "Blue",
      "items": [
        "Leads - Referral",
        "Historical/Remembrance",
        "Rotary - Service Club",
        "For-Profit Company",

      ]
    },
]   
  1. 我在 serviceImpl 中有尝试代码 class
public GenericResponse findAllTypeOfEvents() {
        try {
            List<TypesOfEvents> typesOfEventsList = typeOfEventsDao.findAll();
            List<String> listEvents = new ArrayList<String>();
            for (int i = 0; i < typesOfEventsList.size(); i++) {
                for (int j = i + 1; j < typesOfEventsList.size()- 1; j++) {
                    if (typesOfEventsList.get(i).getColor().equalsIgnoreCase(typesOfEventsList.get(j).getColor())) {
                        if (typesOfEventsList.get(j).getType().equalsIgnoreCase(typesOfEventsList.get(j).getType())){
                            listEvents.add(i,typesOfEventsList.get(j).getType());
                            System.out.println(typesOfEventsList.get(i).getColor() + " : " + typesOfEventsList.get(j).getType());
                        }
                    }
                }
            }
            return APIResponseBuilder.build(true, listEvents.toArray(), typesOfEventsList.size() > 0 ? commonMessages.findAllTrue : commonMessages.findAllFalse);
        } catch (Exception e) {
            logger.error(commonMessages.findAllException + "TypesOfEvents " + e.getMessage());
            return APIResponseBuilder.build(false, e.getMessage(), commonMessages.exception);
        }
    }

4.MY 响应

"data": [
    "Seminart",
    "For-Profit Company",
    "For-Profit Company",
    "Historical/Remembrance",
    "Leads - Referral",
    "Historical/Remembrance",
    "Historical/Remembrance",
    "Historical/Remembrance",
    "Rotary - Service Club",
    "For-Profit Company",
    "For-Profit Company",
    "For-Profit Company",
    "Historical/Remembrance",
    "Seminart",
    "Seminart",
    "Historical/Remembrance",
    "Workshop",
    "Leads - Referral",
    "Leads - Referral",
    "For-Profit Company",
    "Incubator - Accelerator",
    "Seminart",
    "Historical/Remembrance",
    "Leads - Referral",
    "Leads - Referral",
    "Leads - Referral",
    "Incubator - Accelerator",
    "For-Profit Company",
    "Incubator - Accelerator",
    "Historical/Remembrance",
    "Rotary - Service Club",
    "Incubator - Accelerator",
    "Historical/Remembrance",
    "Rotary - Service Club",
    "Leads - Referral",
    "Workshop",
    "Seminart",
    "Historical/Remembrance",
    "Rotary - Service Club",
    "Non-profit",
    "Incubator - Accelerator",
    "Historical/Remembrance",
    "Rotary - Service Club",
    "Leads - Referral",
    "Incubator - Accelerator",
    "Rotary - Service Club",
    "Historical/Remembrance",
    "Historical/Remembrance",
    "Incentive Trips",
    "Workshop",
    "Seminart",
    "Workshop"
  ]
}

创建一个 Map<String, List<String>> 来映射每种颜色的类型列表。

Map<String, List<String>> map = new HashMap<>();
for (int i = 0; i < typesOfEventsList.size(); i++) {
     if (fruits.containsKey(typesOfEventsList.get(i).getColor())){
          List<String> list = map.get(typesOfEventsList.get(i).getColor());
          list.add(typesOfEventsList.get(i).getType());
          map.put(typesOfEventsList.get(i).getColor(), list);
     } else {
         List<String> list =  new ArrayList<String>();
         list.add(typesOfEventsList.get(i).getType());
         map.put(typesOfEventsList.get(i).getColor(), list);
    }
}

然后创建classTypeByColor

class TypeByColor {
    String color;
    List<String> items;
}

然后从地图创建列表

    List<TypeByColor> data = new ArrayList<>();
    for (String name : map.keySet())  
    { 
        list.add(new TypeByColor(name,map.get(name)));
    }