我有像Map<CategoryEnum, List<GroupEnum>>
这样的HashMap,它代表了组枚举的类别明确列表。我们需要一个像
{
{
"category":"Category Enum1",
"groups":["g1","g2"]
},
{
"category":"Category Enum2",
"groups":["g1","g2"]
}
}
我创建了一个类似下面的POJO类,并手动映射POJO并返回CategoryGroup的列表。
Class CategroyGroup{
private Category category;
private List<Group> groups;
//other code
}
我没有找到一种方法来生成这种JSON而不引入新的POJO类。
答案 0 :(得分:0)
我假设CategoryEnum
和GroupEnum
有getValue方法。
假设这是您正在寻找的输出:
[{
"category":"Category Enum1",
"groups":["g1","g2"]
}, {
"category":"Category Enum2",
"groups":["g1","g2"]
}]
public List<CategoryGroup> getCategories(Map<CategoryEnum, List<GroupEnum>> map) {
List<CategoryGroup> categories = new ArrayList<>();
for (Map.Entry<CategoryEnum, List<GroupEnum>> entry : map.entrySet()) {
CategoryGroup group = new CategoryGroup();
group.setCategory(entry.getKey().getValue());
group.setGroup(getGroupList(entry.getValue()));
}
return categories;
}
private List<Group> getGroups(List<GroupEnum> list) {
List<Group> groups = new ArrayList<>();
for (GroupEnum groupEnum : list) {
groups.add(groupEnum.getValue());
}
return groups;
}