Java : Json with duplicate keys to map using Jackson

标签 java json hashmap 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<String,String>>(){});

返回一个带有唯一键的映射。但是我需要一个 map 对象来保存来自 json 文件的所有数据。

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

最佳答案

我同意@fge 的评论。

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

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

关于Java : Json with duplicate keys to map using Jackson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710471/

相关文章:

ios - AlamofireObjectMapper 结果为零

javascript - 加载 JSON 文件并返回 JSON 对象的方法

java - HashMap 函数 'put' 无法正常工作 - Java

java - 我如何使用 Java 中的 Selenium 选择这个元素?

java - Mobile - Codename - 怎么比母语快?

java - 仅刷新网站的特定部分/元素

java - 使用 javafx 创建日历

json - Alamofire检查返回的数据

java - 对 Map.containsValue 方法的困惑

android - 对 HashMap 列表进行排序