我们使用Jersey JAX-RS和Jackson(2.1.5版)开发了一个REST服务,用于JSON序列化。
由于该应用程序应该是作为现有移动的应用程序后端的旧遗留服务的直接替代品,我们需要对Jackson序列化布尔值的方式进行一些调整。
现有移动的应用程序期望布尔值表示为“true”和“false”字符串,如下所示:
{"Foo":"true","Bar":"false"}
因此,我一直在寻找一种方法来影响Jackson序列化,以将布尔值输出为字符串,但没有成功。
哦,顺便说一句,由于我们的模型类是使用JAXB类生成从xml模式生成的,所以我们不能用json注解来注解类。
我尝试用ObjectMapper注册一个模块,它为布尔对象提供了一个自定义的序列化程序,但似乎不起作用。
3条答案
按热度按时间s5a0g9ez1#
Jackson2.16基本数据类型自定义序列化程序您应该编写自己序列化程序布尔数据类型示例代码
//使用自订布林值序列化程式建立模块
}
//使用ObjectMapper注册自定义BooleanSerializer类
//这里是设定对象Map器的地方
iyzzxitl2#
好的,看起来是我的IDE或Maven出了问题,拒绝构建或引用我在
ObjectMapper
配置中所做的更改。为了方便将来的访问者,下面是使Jackson数据绑定以字符串形式输出布尔值的问题的解决方案要点:
在我的自定义ObjectMapper上下文解析器中,我只需为布尔对象类型添加特殊的序列化器:
如果您知道如何配置ObjectMapper,那么这就足够了。
hl0ma9xz3#
从2.8版开始,只需制作: