使用jackson转换Java对象时如何忽略可选属性

2024-01-09

我正在使用 Jackson 1.9.2(org.codehaus.jackson) 将 Java 对象转换为匹配的 JSON 构造。这是我的java对象:

Class ColorLight {
    String type;
    boolean isOn;
    String value;

    public String getType(){
        return type;
    }

    public setType(String type) {
        this.type = type;
    }

    public boolean getIsOn(){
        return isOn;
    }

    public setIsOn(boolean isOn) {
        this.isOn = isOn;
    }

    public String getValue(){
        return value;
    }

    public setValue(String value) {
        this.value = value;
    }
}

如果我进行以下转换,我会得到我想要的结果。

ColorLight light = new ColorLight();
light.setType("red");
light.setIsOn("true");
light.setValue("255");
objectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString();

jsonString 会是这样的:

{"type":"red","isOn":"true", "value":"255"}

但有时我没有 isOn 属性的值

ColorLight light = new ColorLight();
light.setType("red");
light.setValue("255");

但 jsonString 仍然是这样的:

{"type":"red","isOn":"false", "value":"255"}

其中“isOn:false”是Java布尔类型的默认值,我不希望它在那里。 如何像这样删除最终 json 构造中的 isOn 属性?

{"type":"red","value":"255"}

如果该值不存在则跳过该值:

  • Use Boolean而不是boolean原始(boolean值始终设置为true or false).
  • 使用以下命令将 Jackson 配置为不序列化 null@JsonInclude(Include.NON_NULL) or @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL),取决于版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用jackson转换Java对象时如何忽略可选属性 的相关文章

  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何格式化 Json 输出

    请帮助我如何获取 JSON 输出 如下所示 costMethod Average fundingDate 2008 10 02 fundingAmount 2510959 95 代替 type sma costMethod Average
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • Conda 包的版本信息与 __version__ 不对应

    我正在使用蟒蛇 myenv3 foo foo which conda home foo anaconda3 bin conda 在 myenv3 中我有dill 2 8 2安装 myenv3 foo foo conda list n mye
  • 更改时将事件附加到属性

    c silverlight 是否有任何功能可以让我在不使用依赖属性的情况下监视用户控件的属性 以了解何时进行任何更改 我想要一个不是静态的 有两种标准机制可以实现 观察 模式 即所描述的模式 一是使用依赖属性 另一个是INotifyProp
  • 如何使用 Intent Extras 传递可序列化对象的数组?

    我想传递一个对象数组而不使用首选项 我用意向 对象类 Bts public class Bts implements Serializable int idbts String nombts String ipaddress String
  • 边框宽度变化时不影响其他元素的定位

    我想在悬停时更改圆圈的边框宽度 而不影响其他元素的位置 会更清楚这个jsFiddle https jsfiddle net xhanrkzy HTML span class menu i class cercle i Foo span sp
  • 未配置 Google 日历 API 访问权限

    我从这里下载了一个示例项目 http code google com p google api java client source browse calendar android sample repo samples http code
  • Arduino 错误:无法将参数 '1' 的 'String' 转换为 'char*' 到 'char* strtok(c​​har*, const char*)'

    我正在研究一个 arduino 分配 它分割传入的字符串并将字符串的术语放入 6 个不同的变量中 分割时的示例输入字符串有 6 个术语 我弹出以下错误 无法将参数 1 的 String 转换为 char 到 char strtok c ha
  • 你是质数吗

    多年来我一直对寻找更好的素数识别器的问题感兴趣 我意识到这是一个巨大的学术研究领域 我对此的兴趣实际上只是为了好玩 这是我在 C 语言中第一次尝试可能的解决方案 如下 我的问题是 你能提出改进建议吗 没有引用网上的其他参考资料 我正在寻找实
  • 在 VSCode 中,保存时退出 Vim 插入模式

    我将 VSCode 与 VSCodeVim 扩展一起使用 在插入模式下 我可以按 CMD S 进行保存 当我这样做时 我还想自动退出插入模式 而不是按 ESC 这可能吗 我也在寻找与此问题类似的解决方案 vscode 中似乎无法将多个命令映
  • 实施 isalpha 时遇到问题

    我一直在研究CS50的可读性问题 第一步是创建一种仅计算字母字符的方法 它建议使用isalpha函数 但并不真正包含如何实现它的说明 下面是我的代码 它成功地计算了字母字符总数 但未能过滤掉标点符号 空格和整数 谁能指出我更好的方向来实施i
  • 街道地址的正则表达式

    我正在尝试匹配包含街道和号码的街道地址 我需要表达式来匹配街道名称的单词 后跟数字 例如 我想匹配 somestreet 25 some other street 23 a third street 190 但不匹配 a fourth st
  • 使用 Python 向 Microsoft Teams 发送自动消息

    我想运行一个 Python 脚本 最后通过 MS Teams 将结果以文本格式发送给几个员工 是否有任何已构建的库允许我通过 Python 代码在 Microsoft Teams 中发送消息 1 在 MS Teams 中创建 webhook
  • R清理csv文件

    我正在研究天气数据 我正在尝试清理 csv 文件 但不断收到奇怪的错误 在 csv 文件中 9999 和 9999 是空值 我想删除一半以上值为 9999 或 9999 的所有列 我读了 csv 文件 然后初始化一个空矩阵 使其与读取 cs
  • VBA循环遍历文件夹中的Excel工作簿并复制数据-不循环遍历所有文件

    我试图让 VBA 宏循环遍历特定文件夹中的所有 xls 文件 下面的代码在大多数情况下都有效 然而 我在这个文件夹中有 42 个文件 代码只循环其中大约 26 个 它们都是相同的文件扩展名 我的想法是它要么没有循环遍历所有文件 或者它正在循
  • `scanf("%d", ...)` 和 `gets` 一样糟糕吗?

    很多年了 gets被普遍贬低为不安全的功能 规范的SO问题是为什么 gets 函数如此危险以至于不应该使用它 https stackoverflow com questions 1694036 why is the gets functio
  • 如果第一个返回 false,则不会调用条件中的 javascript 函数调用

    我的问题看似简单 我有两个函数 function a 和 function b 它们显示 隐藏 div 并返回布尔值 我有条件 if function a function b do stuff 然而 如果 function a 返回 fa
  • 以编程方式更改网络选择模式

    我正在尝试 想知道是否有可能 编写一个应用程序 它将根据某些标准自动更改网络选择模式 例如 将网络运营商从 Vodafone 更改为 T Mobile 假设 SIM 卡注册会成功 但我不担心 atm 不幸的是 我似乎无法在 API 中找到任
  • 如何使用 swing 中的 GridLayout 使我的列具有不同的大小?

    我正在使用 GridLayout 我的代码如下 int changingVar 1 JPanel panel new JPanel new GridLayout changingVar 2 panel add new JButton BUT
  • 生成 HMAC SHA256 签名 Powershell

    对于 3commas 我尝试使用文档中的示例参数在 Powershell 中生成 HMAC SHA256 签名 secret NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H
  • 有没有办法使用 Hibernate 仅从对象中获取更改的列?

    在持久对象中 如果我只更改一个字段 是否可以仅通过Hibernate找出更改的字段 我知道我可以获取整个旧行和新行并进行比较 根据您的评论之一 我的理解是您正在寻找一种审核解决方案 因此我建议检查Envers http www jboss
  • 使用jackson转换Java对象时如何忽略可选属性

    我正在使用 Jackson 1 9 2 org codehaus jackson 将 Java 对象转换为匹配的 JSON 构造 这是我的java对象 Class ColorLight String type boolean isOn St