使用 Jackson 将消息从 JSON 反序列化为 POJO

2024-02-05

如果您在不检查消息的情况下不知道要使用什么类型的 POJO,那么如何使用 Jackson 将 JSON 文档反序列化为 POJO。有没有办法向 Jackson 注册一组 POJO,以便它可以根据消息选择一个?

我试图解决的场景是通过线路接收 JSON 消息,并根据消息的内容反序列化为多个 POJO 之一。


我不知道你所描述的机制。 我认为你必须自己检查 json:

    Map<String, Class<?>> myTypes = ... 
    String json = ...
    JsonNode node = mapper.readTree(json);
    String type = node.get("type").getTextValue();
    Object myobject = mapper.readValue(json, myTypes.get(type));

如果没有类型字段,则必须检查 JsonNode 中的字段才能解析类型。

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

使用 Jackson 将消息从 JSON 反序列化为 POJO 的相关文章

  • 非易失性领域的出版与阅读

    public class Factory private Singleton instance public Singleton getInstance Singleton res instance if res null synchron
  • Java 中的 <-- 是什么? [复制]

    这个问题在这里已经有答案了 我遇到了下面的片段 它输出到4 3 2 1 我从来没有遇到过 lt 在爪哇 Is lt 使 var1 的值变为 var2 的运算符 public class Test public static void mai
  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • 什么是内部类的合成反向引用

    我正在寻找应用程序中的内存泄漏 我正在使用的探查器告诉我寻找这些类型的引用 但我不知道我在寻找什么 有人可以解释一下吗 Thanks Elliott 您可以对 OUTER 类进行合成反向引用 但不能对内部类实例进行合成 e g class
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 我对线程失去了理智

    我想要这个类的对象 public class Chromosome implements Runnable Comparable
  • java中如何知道一条sql语句是否执行了?

    我想知道这个删除语句是否真的删除了一些东西 下面的代码总是执行 else 是否删除了某些内容 执行此操作的正确方法是什么 public Deleter String pname String pword try PreparedStatem
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 如何在 IntelliJ IDEA 中运行 akka actor

    来自 Akka 网站文档 然后 这个主要方法将创建所需的基础设施 运行演员 启动给定的主要演员并安排 一旦主要参与者终止 整个应用程序就会关闭 因此 您将能够使用类似于以下的命令运行上面的代码 下列的 java classpath akka
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • titledBorder 标题中的图标

    您好 是否可以在 titledBorder 的标题中放置一个图标 例如以下代码 import java awt GridLayout import javax swing JFrame import javax swing JLabel i
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 带 getClassLoader 和不带 getClassLoader 的 getResourceAsStream 有什么区别?

    我想知道以下两者之间的区别 MyClass class getClassLoader getResourceAsStream path to my properties and MyClass class getResourceAsStre
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 使用 DBCP 配置 Tomcat

    在闲置一段时间 几个小时 后 我们收到了 CommunicationsException 来自 DBCP 错误消息 在异常中 位于这个问题的末尾 但我没有看到任何配置文件中定义的 wait timeout 我们应该看哪里 在 tomcat

随机推荐

  • Swift:从 iOS 7 编译 Archive 时出现分段错误

    我一直遇到这个问题 所以我开始用 Swift 创建一个新的单视图应用程序 适用于 iPhone 和 iPad 当目标是 iOS 8 1 时 一切正常 但如果我设置 iOS 7 1 或 7 则会出现分段错误 当我转到 产品 gt 存档 时 当
  • Centos+Apache+passenger+rails:从 www 文件夹运行 Rails 应用程序

    我正在尝试学习 Rails 所以我是新手 希望得到一些帮助 我试图同时运行多个应用程序 但遇到了一个奇怪的问题 当我尝试用 Rails 生成东西时 它给了我一个权限错误 我浏览了 stackoverflow 和其他几个网站 但没有找到任何好
  • 适用于 Foundry 中的业务/最终用户的电子表格上传

    Foundry 是否具有对将电子表格 相同架构 上传和附加到一个数据集的本机支持 并具有适合业务 最终用户的界面 我正在评估一个用户工作流程 其中涉及临时接收表格电子表格并使用常规编程方法附加它们 我正在尝试在 Foundry 中启用此工作
  • 从 XPages 全局删除 Dojo

    At http www dominoguru com pages 11182010085538 html http www dominoguru com pages 11182010085538 html and http dpastov
  • 限制 python 脚本位置

    我想知道是否有一种方法可以控制 python 脚本的运行位置 这样Python就只允许运行某些位置的脚本 我们正在运行带有 Windows 域控制器的 Windows 环境 原因是作为在具有严格安全要求的环境中锁定 python 的一步 给
  • Python 中 dict 类的动态运算符重载

    我有一个类可以动态重载基本算术运算符 如下所示 import operator class IshyNum def init self n self num n self buildArith def arithmetic self oth
  • 错误:ADB 退出,退出代码为 1 执行流式安装

    我在运行时收到以下错误flutter run然而 在某些项目上 在其他项目上它工作得很好 base Nusraths MacBook Pro flutter uber clone rahama flutter emulators launc
  • android webview 的自定义字体

    我在我的应用程序中使用 webview 我想使用自定义字体以波斯语显示文本 我将字体放在 asset 文件夹中 并编写了一种在 webview 中放置文本的方法 但在不支持波斯语的 api8 中 它显示未知字符而不是我的文本和支持波斯语的
  • 对不是 的直接子级的输入显示选项卡表单验证

    当未聚焦的选项卡出现验证错误时 选项卡标题应显示为红色 相反 当未聚焦的选项卡出现验证错误时 选项卡标题不会给出任何错误指示 当我使用子组件时会发生此问题 如果所有组件都是在创建 编辑级别定义的 则该选项卡将按预期变为红色 但如果存在嵌套组
  • dcast 重命名所有变量以数字开头

    所以我得到的数据如下所示 id year principal interest 1 011000600 2013 0 00 0 00 2 011000600 2014 544 03 0 00 3 011000700 2013 0 00 0
  • Java - 如果随后定义了 actionPerformed,JButton 文本就会消失

    这已经困扰我一段时间了 如果我定义setText在 JButton 上before定义setAction 文本消失 JButton test new JButton test setText test Before disappears t
  • 如何使用 Jasmine 监视匿名函数

    我正在使用 Jasmine 来测试我的角度应用程序 并希望监视匿名函数 使用角度通知服务https github com cgross angular notify https github com cgross angular notif
  • 将 SAS 数据集中的观测值读入数组

    这个问题与大型机上的 SAS 相关 尽管我相信在这种情况下没有什么区别 我有以下 SAS 数据集 Obs DATO T ALLOC T FRESP 1 19328 647 1804 2 19359 654 1797 3 19390 662
  • 如何自定义 Mini-Profiler UI

    我已经在我的 MVC 4 应用程序上安装了 Mini Profiler 它运行得非常顺利 我遇到的唯一问题是用户界面掩盖了用户界面的关键部分 我可以使用 css 在页面上移动它 但理想情况下我想让它默认为隐藏状态 并带有抽屉按钮以使其弹出
  • 自动生成我的 C++ 代码的 uml 图

    不久前 我担任 Java 编程入门课程的助教 我们使用了一个名为BlueJ http www bluej org 它有一个很好的功能 即开发文件的概述是一个轻量级的 UML 图 其中绘制了 使用 指针和继承指针 这使得可以轻松查看程序的结构
  • 查找包含任意数量的嵌套哈希和数组的哈希深处的键/值对

    Web 服务返回的哈希值包含未知数量的嵌套哈希值 其中一些包含数组 而数组又包含未知数量的嵌套哈希值 有些键不是唯一的 即存在于多个嵌套哈希中 然而 我真正关心的所有键都是唯一的 有什么办法可以给顶级哈希提供一个键 并取回它的值 即使键值对
  • 如何在 Web 应用程序中控制 iPhone 的屏幕方向

    我有一个非常基本的网页 它使用 flot 来创建canvas基于图 类似于 SO 用于声誉图的图 对于 PC 显示器 它应该正常输出 宽度 x 轴 为高度的 1 6 倍 但对于 iPhone 我希望页面默认为横向 而不是让它以 纵向 方向溢
  • 从 Snowflake 中的字符串中删除非 ASCII 字符

    如何从 Snowflake SQL 中的字符串中删除所有非 ASCII 字符 我遇到过使用 T SQL 等的解决方案 但没有关于如何在雪花中执行此操作的文章 正则表达式应该足够了 除非您考虑其他情况 select regexp replac
  • 存储凭据以供自动使用

    我已经环顾四周 由于我不是安全或加密专家 所以我仍然对如何在程序中实现加密感到困惑 我需要一台服务器来登录其 gitHub 帐户 以更新具有特殊标头的代码文件 我现在遇到的唯一难题是如何存储 检索服务器的凭据 PushOptions pus
  • 使用 Jackson 将消息从 JSON 反序列化为 POJO

    如果您在不检查消息的情况下不知道要使用什么类型的 POJO 那么如何使用 Jackson 将 JSON 文档反序列化为 POJO 有没有办法向 Jackson 注册一组 POJO 以便它可以根据消息选择一个 我试图解决的场景是通过线路接收