首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置Jackson映射器

如何配置Jackson映射器
EN

Stack Overflow用户
提问于 2018-11-18 13:54:02
回答 2查看 1.2K关注 0票数 2

如何为http4k全局配置json序列化程序?例如,蛇形大小写字段名或将DateTime格式化为ISO8601。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-19 04:37:37

由于ObjectMapper实例是ConfigurableJackson,所以在构建之后无法获得它来执行任何配置。

因此,您要么需要构造自己的ConfigurableJackson直接实例并传入自定义的ObjectMapper,要么需要使用自己的类对ConfigurableJackson进行子类分类。然后,在构造函数期间,创建一个ObjectMapper (参见下面的示例),或者拦截一个被传递到构造函数并更改其设置的构造函数。

无论您做什么,都要确保不会破坏http4k框架或其他可能使用同一个实例的东西。您可以看到http4k 在源代码中声明使用的默认值。

代码语言:javascript
复制
object Jackson : ConfigurableJackson(ObjectMapper()
    .registerModule(defaultKotlinModuleWithHttp4kSerialisers)
    .disableDefaultTyping()
    .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
    .configure(FAIL_ON_IGNORED_PROPERTIES, false)
    .configure(USE_BIG_DECIMAL_FOR_FLOATS, true)
    .configure(USE_BIG_INTEGER_FOR_INTS, true)
)

您可以使用类似于上面的代码来创建您自己的实例。

有关此主题的对话,请参阅以下帖子:https://github.com/http4k/http4k/issues/183

票数 1
EN

Stack Overflow用户

发布于 2018-11-18 18:47:49

您不一定需要扩展ConfigurableJackson --只是扩展它是最方便的方法(在我们的经验中)。

所有配置都是通过调整注入到ObjectMapper构造函数中的ConfigurableJackson实例来完成的-- ConfigurableJackson本身只是在映射器周围提供了包装器API。问题是与杰克逊的标准配置有关,所以您应该直接从杰克逊文档中寻找特定问题(蛇案例等)的答案,因为http4k并不拥有该API。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53361644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档