如何配置杰克逊映射器
How to configure Jackson mapper
如何为 http4k 全局配置 json 序列化程序?例如,蛇形字段名称或将 DateTime 格式化为 ISO8601。
您不一定需要扩展 ConfigurableJackson
- 只是扩展它是最方便的方式(根据我们的经验)。
所有配置都是通过调整注入到 ConfigurableJackson
构造函数中的 ObjectMapper
实例来完成的 - ConfigurableJackson
本身只是提供围绕该映射器的包装器 API。问题与 Jackson 的标准配置有关,因此您应该直接从 Jackson 文档中寻求特定问题的答案(蛇案等),因为 http4k 不拥有 API.
由于 ObjectMapper
实例是 private within ConfigurableJackson
,您无法在构建后对其进行任何配置。
所以你要么需要构造你自己的 ConfigurableJackson
的直接实例并传入自定义的 ObjectMapper
或者你需要用你自己的 class ConfigurableJackson
=34=]。然后在构造函数中,创建一个 ObjectMapper
( 请参见下面的示例 )或拦截一个传递给构造函数的并更改其设置。
无论您做什么,请确保您不会破坏 http4k 框架或任何其他可能使用同一实例的东西。可以看到http4k使用的默认值declared in their source code:
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
如何为 http4k 全局配置 json 序列化程序?例如,蛇形字段名称或将 DateTime 格式化为 ISO8601。
您不一定需要扩展 ConfigurableJackson
- 只是扩展它是最方便的方式(根据我们的经验)。
所有配置都是通过调整注入到 ConfigurableJackson
构造函数中的 ObjectMapper
实例来完成的 - ConfigurableJackson
本身只是提供围绕该映射器的包装器 API。问题与 Jackson 的标准配置有关,因此您应该直接从 Jackson 文档中寻求特定问题的答案(蛇案等),因为 http4k 不拥有 API.
由于 ObjectMapper
实例是 private within ConfigurableJackson
,您无法在构建后对其进行任何配置。
所以你要么需要构造你自己的 ConfigurableJackson
的直接实例并传入自定义的 ObjectMapper
或者你需要用你自己的 class ConfigurableJackson
=34=]。然后在构造函数中,创建一个 ObjectMapper
( 请参见下面的示例 )或拦截一个传递给构造函数的并更改其设置。
无论您做什么,请确保您不会破坏 http4k 框架或任何其他可能使用同一实例的东西。可以看到http4k使用的默认值declared in their source code:
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