Java 使用Jackson将json展平到地图

Java 使用Jackson将json展平到地图,java,json,deserialization,jackson,unmarshalling,Java,Json,Deserialization,Jackson,Unmarshalling,我目前正在使用该库使用注释将json解组到POJO 我想要解组的json树如下所示: { “键1”:“值1”, “键2”:“值2”, “键3”:{ “键31”:{ “键311”:“值311”, “key312”:“value312”, “键313”:“值313” }, “键32”:“值32” }, “键4”:“值4”, “键5”:“值5”, “键6”:{ “键61”:“值61” } } 我事先不知道json结构,希望将其完全展平为一张地图,其内容相当于: Map outputMap=newha

我目前正在使用该库使用注释将json解组到POJO

我想要解组的json树如下所示:

{
“键1”:“值1”,
“键2”:“值2”,
“键3”:{
“键31”:{
“键311”:“值311”,
“key312”:“value312”,
“键313”:“值313”
},
“键32”:“值32”
},
“键4”:“值4”,
“键5”:“值5”,
“键6”:{
“键61”:“值61”
}
}
我事先不知道json结构,希望将其完全展平为一张地图,其内容相当于:

Map outputMap=newhashmap();
outputMap.put(“键1”、“值1”);
outputMap.put(“键2”、“值2”);
outputMap.put(“键311”、“值311”);
outputMap.put(“键312”、“值312”);
outputMap.put(“键313”、“值313”);
outputMap.put(“键32”、“值32”);
outputMap.put(“键4”、“值4”);
outputMap.put(“键5”、“值5”);
outputMap.put(“键61”、“值61”);
(请注意,应忽略键“键3”、“键31”和“键6”)

使用注释
@JsonAnySetter
,我可以创建一个函数,用所有顶级原子填充映射,但该方法还将捕获具有子节点的节点(当值为映射时)

从这一点上,我当然可以自己编写子级上的简单递归,但我希望通过使用库中的工具(注释、配置等)自动(以优雅的方式)处理这一部分,而不必自己编写递归


注意:我们假设不同级别的键中没有名称冲突。

据我所知,没有基于注释的机制来实现这一点,因为@JsonUnwrapped可能只适用于POJO,而不适用于映射。
我想您可以提交一个增强请求,要求@JsonUnwrapped进行扩展以同时处理Map case,尽管它似乎只适用于序列化(不确定如何反序列化)。

据我所知,没有基于注释的机制来实现这一点,因为@JsonUnwrapped可能只适用于POJO,不是地图。 我想您可以提交一个增强请求,要求@JsonUnwrapped进行扩展以同时处理Map case,尽管它似乎只适用于序列化(不确定如何反序列化)