杰克逊:将对象视为原始对象

2024-04-04

我有一门或多或少是围绕双精度型的包装类。当我通过 Jackson 序列化我的类时,我将收到类似以下内容的信息:{“value”:123.0}。我基本上希望发生的是,杰克逊只给我 123.0.0。如果我可以扩展 Number,我的问题就会得到解决,但由于我已经扩展了另一个类,所以这不是一个选择。

Class:

@JsonIgnoreProperties(ignoreUnknown = true)
@SuppressWarnings("unused")
public class TestValue {
    @JsonProperty
    private final Double d;

    public TestValue(Double d) {
        this.d = d;
    }
}

结果是:

{
  "d" : 123.0
}

什么会像预期的那样工作:

public class TestValue extends Number {
    private final Double d;

    public TestValue(Double d) {
        this.d = d;
    }

    public double doubleValue() {
        return d;
    }

    public float floatValue() {
        return d.floatValue();
    }

    public int intValue() {
        return d.intValue();
    }

    public long longValue() {
        return d.longValue();
    }

    public String toString() {
        return d.toString();
    }
}

..结果为:123.0

但是 - 你知道 - 我已经扩展了另一个抽象类。我怎样才能得到预期的结果?


因为我确信有人可以重用它,所以我将回答我自己的问题(感谢加文给我指明了道路):

public class TestValue {
    private final Double d;

    public TestValue(Double d) {
        this.d = d;
    }

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

杰克逊:将对象视为原始对象 的相关文章

随机推荐

  • 其元数据的二进制版本是1.7.1,预期版本是1.5.1

    C Users khare gradle caches modules 2 files 2 1 org jetbrains kotlin kotlin stdlib common 1 7 0 51736992f422993a1e741051
  • KTable 应该发出的事件

    我正在尝试测试一个拓扑 该拓扑作为最后一个节点 具有 KTable 我的测试是使用成熟的 Kafka 集群 通过 confluence 的 Docker 镜像 所以我not使用TopologyTestDriver 我的拓扑有键值类型的输入S
  • 自定义设计signed_up_but_unconfirmed消息

    实际上我想自定义signed up but unconfirmed消息该消息是 A message with a confirmation link has been sent to your email address Please fo
  • 如何检查SuperTab和jedi-vim是否激活?

    正如标题所述 如何检查插件是否已加载 当我击中时tab 对于 SuperTab 我得到的只是插入到我的文件中的普通字符 tab 当我点击ctrl 空格键我只是被抛出插入模式 与点击相同的行为ESC The scriptnames命令列出所有
  • 办公文档设置

    我目前正在存储一个键值对Office context documents settings使用以下函数 Office context document settings set name value 存储键值对后 我将重新启动加载项并尝试使
  • 无法将 SQL 查询的结果传递给 JAVA 中的方法

    这是我第一次使用 Java 我很困惑 我创建了这个方法 List
  • 即使使用文档中的示例,也无法模拟打开

    我直接从 Python 复制并粘贴了以下代码模拟文档 https docs python org 3 library unittest mock html mock open from unittest mock import patch
  • 无法安装 MySQL-python

    好的 我最近从 Ubuntu 10 04 升级到 12 04 只会面临很多问题 我是这方面的新手 所以你可能需要更详细地或一步一步地告诉我 我有一个 django 项目运行完美 但现在它给了我这个错误 File usr local lib
  • 在 Fabric.js 中控制 z-index

    在fabricjs中 我想创建一个场景 其中鼠标下方的对象在z index中上升到场景的顶部 然后一旦鼠标离开该对象 它就会返回到它来自的z index 无法设置 object zindex 这很好 相反 我使用一个占位符对象 将其放入旧位
  • 控制加速度直到到达某个位置的算法

    我有一个可以移动的点 在一维 并且我需要它平滑地移动 所以我认为它的速度必须是一个连续函数 我需要控制加速度 然后计算它的速度和位置 该算法对我来说似乎并不明显 但我想这一定是一个常见问题 我只是找不到解决方案 Notes 对象在移动时的最
  • Python - 将 set-cookies 响应转换为 cookie 字典

    如何转换response set cookie 输出字符串来自httplib2回应像 cookie1 xxxyyyzzz Path Expires Wed 03 Feb 2015 08 03 12 GMT Secure HttpOnly c
  • GLUT 退出重新定义错误

    在我的简单 OpenGL 程序中 我收到以下有关退出重新定义的错误 1 gt c program files microsoft visual studio 8 vc include stdlib h 406 error C2381 exi
  • Android Studio 3 库模块和功能模块的区别

    Android Studio 3 中至少有两种新的模块类型 首先是Instant app module第二个是feature module With Instant App module这是很明显的但是feature module从我的角度
  • arrayWillChange 中“无法调用未定义的‘销毁’方法”

    我有一个非常标准的数组 模板关系设置 但是当我将一个新项目推入数组时 我得到了上面提到的内容Cannot call method destroy of undefined错误在arrayWillChangeEmber源码的方法 for id
  • 将格式化日期转换回unix

    我将使用哪个函数将自定义格式的日期转换回 Unix 纪元时间 例如 Ymd gt U 我在看date U strtotime 20140525 但我不确定如何适应原始格式Ymd 该函数如何知道输入格式是 YYYYMMDD 因为它看起来有效
  • 如何将 Haskell 转换为 F#?

    我正在尝试通过翻译我很久以前编写的一些 Haskell 代码来学习 F 但我陷入了困境 percent Int gt Int gt Float percent a b fromInt a fromInt b 100 freqs String
  • 跨多个线程的 Java 日志记录

    我们有一个使用线程的系统 以便它可以同时并行处理不同的功能 我们希望找到一种方法将特定 事务 的所有日志条目绑定在一起 通常 人们可能会使用 threadName 将它们收集在一起 但显然这在多线程情况下会失败 如果没有通过每个方法调用传递
  • 使用 C++ 登录到 Windows 上的事件查看器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 C 应用程序上使用日志 但是 我想使用 Windows 10 事件查看器 而不是文本文件 我
  • 如何将“捐赠”按钮集成到印度的网站中?

    我们正在为印度的慈善信托基金开发一个网站 为此 我们需要在网站上添加一个 捐赠 按钮 供任何想要通过支付网关向慈善机构捐赠的人使用 然而 Paypal 和 Google Wallet Google Checkout 都限制在印度使用 捐赠
  • 杰克逊:将对象视为原始对象

    我有一门或多或少是围绕双精度型的包装类 当我通过 Jackson 序列化我的类时 我将收到类似以下内容的信息 value 123 0 我基本上希望发生的是 杰克逊只给我 123 0 0 如果我可以扩展 Number 我的问题就会得到解决 但