Jackson JsonNode 序列化

2024-02-10

我在用着AWS Lambda http://docs.aws.amazon.com/lambda/latest/dg/welcome.html具有 Java 8 功能。 Lambda 有一个内置的 Jackson Serializer,因此当您的方法返回一个对象时,它会将其序列化为 JSON 表示形式。

我有一个由以下属性组成的对象:

private String name;
private JsonNode model;
private JsonNode field;

为了简单起见,我省略了该类的所有其余部分,但它有 getter/setter 等。

通常,当我在本机应用程序中运行它时,它工作得很好。这JsonNode树结构呈现为 JSON。例如:

{
    "name": "example",
    "model": {
        "key": "ipAddress",
        "type": "input",
        "templateOptions": {
            "label": "IP",
            "placeholder": "Something",
            "description": "The IP address.",
            "required": true
        }
    },
    "field": {
        "key": "pro",
        "type": "input",
        "templateOptions": {
            "label": "Pro",
            "placeholder": "Something",
            "description": "Pro Example",
            "required": false
        }
    }
}

然而,由于某种未知的原因,当我在 Lambda 中运行它时,实际的 JsonNode 对象本身(不是树,而是包装对象)被序列化。所以我得到这个:

{
  "name": "example",
  "model": {
    "nodeType": "NULL",
    "array": false,
    "null": true,
    "valueNode": true,
    "containerNode": false,
    "missingNode": false,
    "object": false,
    "pojo": false,
    "number": false,
    "integralNumber": false,
    "floatingPointNumber": false,
    "short": false,
    "int": false,
    "long": false,
    "float": false,
    "double": false,
    "bigDecimal": false,
    "bigInteger": false,
    "textual": false,
    "boolean": false,
    "binary": false
  },
  "fields": {
    "nodeType": "ARRAY",
    "array": true,
    "null": false,
    "valueNode": false,
    "containerNode": true,
    "missingNode": false,
    "object": false,
    "pojo": false,
    "number": false,
    "integralNumber": false,
    "floatingPointNumber": false,
    "short": false,
    "int": false,
    "long": false,
    "float": false,
    "double": false,
    "bigDecimal": false,
    "bigInteger": false,
    "textual": false,
    "boolean": false,
    "binary": false
  },
  "schedule": "0 0/1 * 1/1 * ? *"
}

有谁知道为什么会发生这种情况以及对解决方案/解决方法有什么建议吗?

UPDATE:

我专门使用 JsonNode 因为model and field是动态的并且在运行时提供。所以我不会提前知道结构。


假设“模型”和“字段”始终是对象,而不是数组,您可以使用Map<String, Object>对于他们来说。对于子对象,只需添加其他映射作为值即可。

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

Jackson JsonNode 序列化 的相关文章

随机推荐

  • 在 Android 中,如何更改 onOptionsItemSelected() 内不同 MenuItem 的标题

    单击 Android 中选项菜单中的某个 MenuItem 时 我需要更改同一菜单中不同 MenuItem 的标题 有什么方法可以做到这一点 当单击选项菜单中的 MenuItem 时 将调用 onOptionsItemSelected Me
  • OpenCL 本地内存大小和计算单元数量

    每个 GPU 设备 AMD NVidea 或任何其他 都分为多个计算单元 多处理器 每个计算单元都有固定数量的内核 顶点着色器 流处理器 所以 一个人有 Compute Units x VertexShaders compute unit
  • 如何在java中使用math.pi

    我在转换此公式时遇到问题V 4 3 r 3 我用了Math PI and Math pow 但我收到此错误 预期的 此外 直径变量不起作用 那里有错误吗 import java util Scanner import javax swing
  • 有没有办法将 SQL 数据库链接到 LDAP 服务器

    我们有一个 SQL 联系人数据库 它链接到我们所有的项目信息 其中包含很多附加功能 最近有人建议我们在最终用户的电子邮件客户端中提供此信息的联系人部分 因此我们正在考虑设置 LDAP 服务器 是否有任何工具可以让我们将数据库中的信息 可能是
  • 如何使用 R 和 dplyr 连接不同 SQL 数据库中的表?

    我在用着dplyr 0 7 0 dbplyr 1 0 0 DBI 0 6 1 and odbc 1 0 1 9000 我想做如下的事情 db1 lt DBI dbConnect odbc odbc Driver SQL Server Ser
  • 如何将外部数据库连接到AppEngine?

    有没有什么方法 比使用更好UrlFetch 连接到任何外部数据库来自应用程序引擎 我已经了解托管 SQL 数据库商业应用引擎 http code google com appengine business 但它们不是免费的 并将在 2011
  • numpy.ndarray 枚举维度的真子集?

    在这篇文章中 让np可以简写为numpy Suppose a is a n k 维np ndarray对象 对于某些整数n gt 1 和k gt 1 哎呀 n k gt 3 的值是a ndim 我想列举一下a超过它的第一个n方面 这意味着
  • opencl中的时钟()

    我知道CUDA中有一个函数clock 你可以在其中放入内核代码并查询GPU时间 但我想知道OpenCL中是否存在这样的东西 有没有办法查询OpenCL中的GPU时间 我正在使用 NVIDIA 的工具包 OpenCL 没有直接查询时钟周期的方
  • org.hibernate.loader.MultipleBagFetchException:无法同时获取多个包

    以下是我的代码 我使用多个列表从数据库中获取数据 从 hql 查询获取数据时显示异常 波乔级 public class BillDetails implements java io Serializable private Long bil
  • Ajax-提交表单上的“复选框 onclick”:为什么会出现此错误?

    我需要有一个 ajax 提交表单的复选框 以下代码引发错误 索引 112009 超出字符串 什么是 这里错了 感谢您对此的任何帮助 Tom 看来你正在滥用remote function帮手 它的目的是生成与生成的 JavaScript 相同
  • Compose LazyColumn 键,对项目进行排序时滚动会变得混乱

    我正在尝试对处于某种状态的项目实现简单排序 这将完美地工作 唯一的问题是动画现在消失了 因为它没有关键点 LazyColumn state listState items items size index gt val ticker ite
  • 如何在 ATOM 中启用 Python 语法突出显示

    我使用的是 Python 3 7 我们的课程已转换为 IDE 的 ATOM 编辑器 教授正在运行 Ubuntu 和他的作品 有些人有零星的工作 但我无法得到任何语法突出显示或错误弹出窗口 即使我犯了明显的错误 要启用语法突出显示 您需要从以
  • 在 ruby​​ 中分割文本文件

    我有一个包含几个不同部分的文本文件 每个部分都有一个标题 后面跟着实际数据 例如 Header1 x y z x y z x y z Header2 a b c a b c a b c 我想一次性阅读该文件 并对每个部分下的数据执行不同的操
  • FolderBrowserDialog - 发生 Win32Exception - 参数不正确

    我尝试使用 WPF 中的FolderBrowserDialog 如下所示 public static bool BrowseFolder out string folderName using System Windows Forms Fo
  • request_threaded_irq 的“处理函数”中的 I2c 读取和写入操作如何影响整个驱动程序?

    我有一个带有 request threaded irq 的处理函数和线程函数的驱动程序代码 与此类似 irq handler fn disable device interrupt i2c read from register set di
  • 如何在 Sublime Text 2 中创建自定义布局?

    我想创建一个 2 列布局 其中第 2 列分为 2 行 但并没有真正尝试找出如何做到这一点 我知道这个布局被添加到 Main sublime menu 中 所以我复制了其中一个布局并将其称为 自定义 1 但不确定我必须添加什么作为键 值对或数
  • 创建特定大小的线性间隔数组

    我是 MATLAB 新手 目前正在做家庭作业 我试图声明x变量如下 创建线性间隔数组x大小 1 200 包括以下范围的值 pi to pi 我试过这段代码 x pi 200 pi 但我不确定这是否是正确的方法 您可以使用linspace如下
  • 防止分页 jquery 数据表中的多个单选按钮选择

    我正在使用 Jquery 数据表和 Html 分页 单选按钮在单页中工作正常 但是当单选按钮在多个页面上时 它无法防止单选按钮的多次选择 即 如果我在第 1 页中选择一个单选按钮 在第 2 页中选择另一个单选按钮 则两者都会被选中仅在选定模
  • JavaFX 表行更新

    我想要实现的场景是 每当一个特定的TableCell in a TableRow更新后 行颜色将更改为红色 3 秒后颜色应自动恢复为原始颜色 下边是MCVE 主班 import java util concurrent ExecutorSe
  • Jackson JsonNode 序列化

    我在用着AWS Lambda http docs aws amazon com lambda latest dg welcome html具有 Java 8 功能 Lambda 有一个内置的 Jackson Serializer 因此当您的