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