当前位置: 首页 > 知识库问答 >
问题:

“null”与“nullNode.getInstance()”上的ObjectMapper writeValueAsString

干稳
2023-03-14

请考虑以下陈述:

在这两种情况下,序列化值s1s2将为“null”。默认情况下,Jackson会无一例外地序列化null对象。哪些情况下我们需要使用nullnode,而不是直接序列化null

共有1个答案

越嘉茂
2023-03-14

“null”这里是一个字符串,而不是null值。这就是WriteValueAsString所做的工作:它将null值或NullNode作为“null”字符串编写。

nullnode是Jackson中的一种特殊类型,表示null值。例如,读取以下JSON将反序列化为nullnode(这是一个单例):

JsonNode readValue = new ObjectMapper().readValue(" { \"abc\" : null }", JsonNode.class);
JsonNode jsonNode = readValue.get("abc"); // will return a NullNode
assertTrue(jsonNode == NullNode.getInstance());
 类似资料:
  • 问题内容: 我知道在大多数编程方案中,当元素为0时,首选是将空集合改为空集合。但是,大多数使用JSON的语言(例如JavaScript)会将空列表/对象视为true,将空列表/对象视为false。例如,这既是true也是JavaScript中的对象: 但这也是事实: 这是错误的: 是否有关于JSON的空对象/列表的约定?而数字,布尔值和字符串呢? 问题答案: 如果期望的返回类型是数组,则返回一个空

  • 问题内容: 在上面的第二个选择中,我也希望“ amar”记录,因为该名称与名字,名字或姓氏不匹配。 问题答案: 任何与收益的比较。为了克服这个问题,可以使用三个运算符: -确定左手表达式是否为, -如上,但相反 -以安全的方式比较两个操作数是否相等,即视为正常值。 对于您的代码,您可能要考虑使用第三个选项,并进行null安全比较:

  • 问题内容: 使用整数列时,最好具有或不指定任何值。 例如,如果一个表有一个字段,而一个特定的条目没有父项,您会使用还是? 过去我总是用过,因为我来自Java世界,整数(必须小于1.5)始终必须有一个值。 我主要问的是性能问题,我不太担心哪个是“更正确”的选择。 问题答案: 首选使用,这有两个原因: 用来表示该字段没有值,这正是您要建模的值。 如果您决定将来添加一些参照完整性约束,则必须使用。

  • 我试图在应用程序中使用相机捕获图像后预览它,我确信路径不是空的,但我在以下代码行中收到了这个错误并且没有图像视图。注意:我在另一个设备上测试了代码(不是三星),它可以工作。

  • 我正在尝试建立一个涉及NDK的Android项目:CoolMicApp-Android(已经安装了最新的Android Studio和NDK) 可以通过运行以下命令成功构建C库: ndk-build ndk_application_mk=c:\users\cipta-nb\studioprojects\coolmicapp-android\app\src\main\jni\application.

  • 问题内容: 我正在努力探究在尝试使用createQuery()运行HQL查询时发生的空指针异常的根源。 运行查询的代码非常简单。最初,我有一个我要调用的命名查询,但是只是为了使事情变得更简单并消除我正在做的任何麻烦(springwildlife是程序包,而Species是类/实体): (顺便说一句:我也尝试过使用其中没有包名的方法。并且我还尝试过执行一个更简单的“ FROM springwildl