Java:Json使用重复键来使用Jackson进行映射

我有一个json文件具有相同的键但不同的值如下,

{ "domains" : { "A" : { "name" : "a", "type" : "a1" }, "B" :{ "name" : "r", "type" : "g1" }, "A" : { "name" : "b", "type" : "b1" } } } 

来自外部系统 。 如何将json转换为java map对象并访问键的不同值:A

我正在使用下面的东西,

 map = mapper.readValue(json, new TypeReference<HashMap>(){}); 

返回带有唯一键的地图。 但我需要一个map对象来保存json文件中的所有数据。

无论如何要实现这一目标?

我同意@fge的评论。

但是如果你真的坚持要解决这个问题,你可以对HashMap (或任何其他Map )进行子类化,覆盖它的put方法,并使用你想要的任何机制来处理重复。 只需确保您的Map具有无参数构造函数。

Guava也可能有一个允许保留重复项的数据类型( Multimap ?)。 如果是这样,您将需要使用Jackson的Guava模块: https : //github.com/FasterXML/jackson-datatype-guava