Java:具有重复键的 Json 可以使用 Jackson 进行映射

2024-03-27

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

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

这是来自外部系统。 如何转换json 到 java 映射对象并访问不同的键值:A

我正在使用类似下面的东西,

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

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

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


我同意@fge 的评论。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:具有重复键的 Json 可以使用 Jackson 进行映射 的相关文章

  • 在tomcat中显示Spring-security的SQL错误

    我使用 spring security 框架创建了一个 Web 应用程序 我设置了一个数据库来存储用户及其角色 但 tomcat 给出以下错误 17 sep 2010 11 56 14 org springframework beans f
  • 使用 Java 的 OpenId 提供者/服务器

    我正在尝试使用 OpenId 服务增强现有的 Java Web 应用程序 以便登录用户可以使用我的 Web 应用程序作为 OpenId 提供程序登录另一个启用 OpenId 的应用程序 My first attempt was to use
  • iText7:如何获取段落的实际宽度

    在添加到文档之前 我需要知道段落的宽度 以磅为单位 我在这里搜索并找到了 Alexey 关于段落高度的答案 所以我用宽度做了它 但它不起作用 无论段落有多长 始终返回矩形的宽度 我尝试了这段代码 private float getRealP
  • javax.naming.NameNotFoundException

    我正在 JBoss 5 容器中运行 ejb 示例 我正在使用一个例子从这里开始 第一部分 http www roseindia net jboss jboss 3 2 shtml 在示例中 我在 JBoss 中部署了 bean 并在 Tom
  • Encog - 如何加载神经网络的训练数据

    The NeuralDataSet我在实际中看到的对象除了 XOR 之外什么都没有 它只是两个小数据数组 我无法从文档中找出任何内容MLDataSet 似乎所有内容都必须立即加载 但是 我想循环遍历训练数据 直到到达 EOF 然后将其算作
  • Spring - 两种不同的 POST 方法,具有相同的 URL,但生成的内容类型不同

    我有以下控制器 RequiredArgsConstructor RestController public class OwnerViewController implements ApiOwnerViewController privat
  • Tomcat:具有强密码的 TLSv1.2 不起作用

    我安装了Tomcat 7 配置了对 TLSv1 2 的支持在端口 8443 上 我的连接器配置 协议 org apache coyote http11 Http11NioProtocol SSLEnabled true 方案 https 安
  • 关于java中同步的问题;何时/如何/到什么程度

    我正在开发我的第一个多线程程序 并在同步的几个方面陷入困境 我已经浏览了 oracle sun 主页上的多线程教程 以及这里的一些关于 SO 的问题 所以我相信我知道什么是同步 然而 正如我提到的 有几个方面我不太确定如何弄清楚 我以明确问
  • javax.el.PropertyNotFoundException:在 java.lang.String 类型上找不到属性“tname”

    我之前使用的是 scriptlet 但现在我改用了 mvc 我无法检索 JSP 页面上的值并收到错误 javax el PropertyNotFoundException Property tname not found on type j
  • 测试 Hessian remoting-servlet.xml

    我们使用 Hessian 来实现富客户端和服务器之间的通信 由于移动和重命名 remoting servlet xml 中的条目有时会与实际的类名不匹配 因此 我正在寻找一种简单的方法来测试远程处理 xml 有没有简单的方法可以做到这一点
  • Android 改造参数化@Headers

    我正在使用 OAuth 每次发出请求时都需要将 OAuth 令牌放入标头中 我看到 Header注释 但是有没有办法让它参数化 以便我可以在运行时传入 这是概念 Header Authorization OAuth var api vers
  • 使用 https 的 Java Jersey RESTful Web 服务

    我是 Java EE 的新手 正在开发一个 RESTful API 其中每个 API 调用用户都会发送编码的凭据 我的问题是如何通过默认的 http 实现 https 协议并确保我的连接安全 我正在使用 Jersey Restful Web
  • 如何在打开导航抽屉时使背景 Activity 变小?

    我想做我的背景Activity打开时稍微小一点Navigation Drawer 模拟存在的效果Airbnb应用 我想最好的解释是截图 但重点不是让 View 变小 而是让它成为与 Drawer 打开 关闭动画同步的动画 因此 如果您开始打
  • 将 try catch finally 块放入另一个 finally 块中

    try catch finally try catch finally 上面的代码好不好 是的 你可以这样做 实际上 在处理想要正确关闭的流时 您甚至需要这样做 InputStream in try catch finally try in
  • 重构 google 的 NetworkBoundResource 类以使用 RxJava 而不是 LiveData

    谷歌的android架构组件教程here https developer android com topic libraries architecture guide html有一部分解释了如何抽象通过网络获取数据的逻辑 在其中 他们使用
  • 表达式的类型必须是数组类型,但它解析为浮点数

    当我编写 Java 代码时 我遇到了困难 我觉得我不知何故把这个概念弄乱了 就像我不确定这一点 void setScore float sco sco score public void setScore float sco int id
  • 使用基于Optional内容的流

    我从不受我控制的服务获取可能为空的地图 并且想要处理它 比方说 过滤 映射并减少到我需要的单个元素 问题 是否有从Optional到Stream的 链接 我尝试过 除其他外 return Optional ofNullable getMap
  • POJO 支持使用omnifaces 自动完成primefaces

    我正在尝试在我的项目中使用 primefaces 自动完成组件 以避免将特定转换器写入我尝试使用的每个列表对象全能面孔 http showcase omnifaces org converters ListConverter如建议的here
  • 如何在 Android 上设置 Google Drive API?

    我一直在尝试将 Google Drive 功能集成到我的应用程序中 但我无法使用任何内置功能 因此我相信我要么错过了一个步骤 要么做得不正确 我正在遵循官方的 Google 开发者指南 https developers google com
  • Java:将秒转换为分钟、小时和天[重复]

    这个问题在这里已经有答案了 任务是 输出应如下所示 最好回显输入 您输入了 500 000 秒 即 5 天 18 小时 53 分钟 20 秒 5天18 53 20小时 我该怎么做呢 最容易理解和做到的方法是什么 讲师还说 没有硬编码 我不太

随机推荐

  • Resteasy 3 与 Spring 3 集成不起作用

    我有一个使用 Resteasy 和 Spring 的项目 我之前使用的Resteasy版本是2 3 5 运行良好 没有问题 不过 我最近将 Resteasy 版本升级到 3 0 3 Final 当我部署到 jboss 时 它抛出了一些异常
  • 使用 http.get Flutter 检索 Utf-8 字符集的无效阿拉伯字符

    嗨 我正在尝试从互联网获取数据 https flutter io cookbook networking fetch data in flutter并且只要其中的所有字符response body是英语 一切都很好 但我得到这些结果pers
  • tf.keras.utils.get_file() 可以用来加载本地 zip 文件吗?

    我有包含 4 个图像文件夹的 zip 文件 我在 Google Colab 上遵循的教程使用类似的 zip 文件 但该文件在线托管 并且链接以以下值给出origin这是必需的参数 我已将 zip 文件上传到 Google Drive 并可以
  • 为什么 Java 中的浮点数添加似乎不正确? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 的数学有问题吗 https stackoverflow com questions 588004 is javascripts math broken Java浮点运算 http
  • PostGIS函数将几何线连接在一起?

    注意 the geom 是一个几何值 类型 LINESTRING 在这种情况下 我将它们随机化以提高可读性 gid kstart kend ctrl sec no the geom the sum geom 626 238 239 1208
  • asp.net:如何检测iOS/Android?

    我最近推出了一个用 C net 4 0 编写的 Web 应用程序 广泛使用 jQuery 和 jQuery UI 来提供最佳的用户体验 然而 一些用户报告通过 iPhone 或 Android 设备使用该网站时出现问题 检测 iOS 和 A
  • AsQueryable() 的目的是什么?

    目的是AsQueryable 只是为了让你可以传递一个IEnumerable到可能期望的方法IQueryable 或者有一个有用的理由来表示IEnumerable as IQueryable 例如 是否应该适用于这样的情况 IEnumera
  • 从 ext3 linux 安全地删除文件

    这个问题过去已经被提出过 并取得了不同程度的成功 是否有工具或 C C unix 函数可供调用 使我能够检索文件在磁盘上的位置 不是文件的某个虚拟地址 而是文件所在的磁盘 扇区 块 这里的目标是能够覆盖磁盘上存在的实际位 我可能需要一种方法
  • Vagrant、Codeception 和 Laravel 问题。未发现Http异常

    我正在尝试使用代码接收 http codeception com用于我的验收测试 我的一项测试有以下内容
  • 为什么 WideString 不能用作互操作的函数返回值?

    我不止一次建议人们使用类型的返回值WideString出于互操作目的 访问 Delphi DLL 偶尔抛出异常 https stackoverflow com questions 8533505 accessing delphi dll t
  • Create-React-App:在本地计算机上部署时出现 ESlint 错误

    我正在使用 create react app React v16 12 0 当我运行时出现以下错误 npm start 在苹果电脑上 1 There might be a problem with the project dependenc
  • Joomla 文章上显示的主页模块

    我在主页上有自定义 HTML 和其他模块 这些模块已标记为仅在主页上显示 我的主页上也有带有 阅读更多 链接的文章 问题是 当我单击这些 阅读更多 链接时 页面会打开 所有主页模块仍然存在 并且文章显示在这些模块下方 我已检查设置所有模块都
  • jQuery 选择器 - 匹配元素的内容

    有没有什么办法 任何 jQuery 选择器 我没有发现http api jquery com category selectors http api jquery com category selectors 这可以用作精确匹配吗 包含 h
  • Pygame 缩放精灵

    如何将精灵的图像放大或缩小 我可以更改矩形和所有内容 但不能更改图像 代码 虽然我不确定为什么你需要它 class test pygame sprite Sprite def init self pygame sprite Sprite i
  • .net - C# 2.0 应用程序中的玻璃效果

    如何在 net 2 0 中的 Windows 窗体应用程序上提供 Vista 或 Mac OS X 风格的玻璃效果 这是通过使用 Vista DWM 桌面窗口管理器 API 的互操作来完成的 例如 导入这些函数 DllImport dwma
  • @BeanProperty 具有 PropertyChangeListener 支持吗?

    BeanProperty生成简单的get set方法 有没有办法自动生成此类方法并支持触发属性更改事件 例如 我想将其与 JFace 数据绑定一起使用 我也有同样的问题 并一直在密切关注可能的答案 我想我刚刚偶然发现了一个 尽管我还没有尝试
  • 类路径中的 Flutter 运行时 JAR 文件应具有相同的版本

    Building without sound null safety For more information see https dart dev null safety unsound null safety w Runtime JAR
  • 小阴谋家 - 从哪里开始?

    我刚刚打开 小阴谋家 我觉得我错过了一些东西 第一个问题问 这是一个原子吗 但我没有看到原子是什么的任何定义 我想我可以通过问题的答案推导出什么是原子 但随后它继续问 l 的 car 是什么 l 的 cdr 是什么 我不知道在问什么 这本书
  • AngularJS:工厂 $http 服务

    我试图理解 Angular 中工厂和服务的概念 我在控制器下有以下代码 init function init http post services type getSource ID TP001 success function data
  • Java:具有重复键的 Json 可以使用 Jackson 进行映射

    我有一个具有相同键但不同值的 json 文件 如下所示 domains A name a type a1 B name r type g1 A name b type b1 这是来自外部系统 如何转换json 到 java 映射对象并访问不