Java 如何使用键/值标签属性转换HashMap

Java 如何使用键/值标签属性转换HashMap,java,json,jackson,Java,Json,Jackson,我有类似于Map的HashMap,它表示组枚举的类别列表。我们需要一个像这样的代表 { { "category":"Category Enum1", "groups":["g1","g2"] }, { "category":"Category Enum2", "groups":["g1","g2"] } } 我创建了一个如下所示的POJO类,并手动映射CategoryGroup的POJO和返回列表 Class CategroyGroup{ private Category ca

我有类似于
Map
的HashMap,它表示组枚举的类别列表。我们需要一个像这样的代表

{
{
"category":"Category Enum1",
"groups":["g1","g2"]
},
{
"category":"Category Enum2",
"groups":["g1","g2"]
}
}
我创建了一个如下所示的POJO类,并手动映射CategoryGroup的POJO和返回列表

    Class CategroyGroup{
    private Category category;
    private List<Group> groups;
//other code

    }
类别类别组{
私人类别;
私人名单组;
//其他代码
}

如果不引入新的POJO类,我无法找到生成这种JSON的方法

我假设
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;
}
[{
“类别”:“类别枚举1”,
“组”:[“g1”、“g2”]
}, {
“类别”:“类别2”,
“组”:[“g1”、“g2”]
}]
公共列表getCategories(地图){
列表类别=新建ArrayList();
对于(Map.Entry:Map.entrySet()){
CategoryGroup=新CategoryGroup();
group.setCategory(entry.getKey().getValue());
setGroup(getGroupList(entry.getValue());
}
退货类别;
}
私有列表getGroups(列表){
列表组=新的ArrayList();
用于(GroupEnum GroupEnum:list){
add(groupEnum.getValue());
}
返回组;
}

ur目标json不是有效的json。我认为不存在可以解析它的库。我们需要为enum返回json。它与有效或无效无关。我们需要修复键/值的标签,以便在UI上识别side@iMBMT普华永道的意思是JSON应该是
[“g1”,“g2”]
而不是
{“g1”,“g2”}
@kennytm是的,这是打字错误。更正。感谢PWC。不,我不需要创建Pojo来转换到这样的json结构。我正在寻找任何允许我们添加带有键和值的标签的jackson或库。
Map
将显示JSON为:{categoryEnum1:{groups:[“g1”,“g2”]},categoryEnum2:{groups:[“g1”,“g2]}。它们是完全不同的表示形式,非常具体。您必须自己做。