jackson - 如何在 Ktor 中配置 jackson-modules-java8

标签 jackson ktor jsr310

我正在尝试使用 Ktor 和 Jackson 配置 jackson-modules-java8 但无济于事。

该模块已添加到 gradle.build

dependencies {
    ...
    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.0-rc2'
    ...
}

根据 jackson 文档,我应该这样做:

ObjectMapper mapper = JsonMapper.builder()
    .addModule(new JavaTimeModule())
    .build();

但在 Ktor 中我只能这样做:

install(ContentNegotiation) {
    jackson {
        // `this` is the ObjectMapper
        this.enable(SerializationFeature.INDENT_OUTPUT)
        // what to do here?
    }
}

最佳答案

根据official example如果你想添加一个模块,你可以使用

注册模块

如下:

install(ContentNegotiation) {
    jackson {
        configure(SerializationFeature.INDENT_OUTPUT, true)
        setDefaultPrettyPrinter(DefaultPrettyPrinter().apply {
            indentArraysWith(DefaultPrettyPrinter.FixedSpaceIndenter.instance)
            indentObjectsWith(DefaultIndenter("  ", "\n"))
        })
        registerModule(JavaTimeModule())  // support java.time.* types
    }
}

关于jackson - 如何在 Ktor 中配置 jackson-modules-java8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64894340/

相关文章:

java - 使用 ObjectMapper + JavaTimeModule 将 JacksonJsonProvider 注册到 Jersey 2 客户端

java - 使用 Jersey 客户端,Java 8 Date API (Jsr310) 的问题

Java 日期和时间 (JSR 310) : does a temporal range contain value without iterating all of them

java - Json KEY不断变化时Spring对Java对象的响应

java - 无法使用 jackson @JsonTypeInfo 注释将对象反序列化为其原始类型

java - jackson 漂亮的印花绳

kotlin - 如何使用针对 linuxX64 的 ktor-client-core 修复 'Unresolved reference: HttpClient'

android - ktor 依赖关系未在多平台项目的 ios 模块中解析

JSON Jackson 共享引用

kotlin - Ktor session Cookie 身份验证