如何在 Javalin 上配置默认的 Jackson JSON Mapper
How to configure the default Jackson JSON Mapper on Javalin
到目前为止,我找到了如何替换 Javalin json 映射器:
https://javalin.io/documentation#configuring-the-json-mapper
但我不想替换它,只想添加几个 jackson 模块,比如这个:
https://www.ktorm.org/api-docs/org.ktorm.jackson/-ktorm-module/index.html
没有这个,Javalin 无法序列化 ktorm 实体,示例代码 here
已解决!
在 JavalinConfig 中,您可以实现 JsonMapper
将default implementation accepts an ObjectMapper作为参数,所以我可以这样做:
// custom config to make ktor and jackson behave
val mapper = ObjectMapper()
mapper.registerModule(JavaTimeModule())
mapper.registerModule(KotlinModule.Builder().build())
mapper.registerModule(KtormModule())
// spin up app
val app = Javalin.create {
it.jsonMapper(JavalinJackson(mapper))
}.start(3000)
然后 Javalin 和 Ktorm 完美地协同工作。
更新:
到目前为止,我找到了如何替换 Javalin json 映射器:
https://javalin.io/documentation#configuring-the-json-mapper
但我不想替换它,只想添加几个 jackson 模块,比如这个:
https://www.ktorm.org/api-docs/org.ktorm.jackson/-ktorm-module/index.html
没有这个,Javalin 无法序列化 ktorm 实体,示例代码 here
已解决!
在 JavalinConfig 中,您可以实现 JsonMapper
将default implementation accepts an ObjectMapper作为参数,所以我可以这样做:
// custom config to make ktor and jackson behave
val mapper = ObjectMapper()
mapper.registerModule(JavaTimeModule())
mapper.registerModule(KotlinModule.Builder().build())
mapper.registerModule(KtormModule())
// spin up app
val app = Javalin.create {
it.jsonMapper(JavalinJackson(mapper))
}.start(3000)
然后 Javalin 和 Ktorm 完美地协同工作。
更新: