【问题标题】:spring json serialization issuespring json序列化问题
【发布时间】:2021-12-31 04:16:49
【问题描述】:

我无法在 json 响应中获取 is_secure 对象属性,这段代码有什么问题?

@Configuration
class RouterConfiguration( ) {
    @Bean
    fun testRoutes(testHandler: TestHandler) = coRouter {
        GET("/test", testHandler::testFunction)
    }
}
data class TestClass(
    val is_secure: Int? = 1,
    val xyz: String?
)
@Component
class TestHandler{
    suspend fun testFunction(request: ServerRequest): ServerResponse =
        ServerResponse.ok().bodyValueAndAwait(TestClass(1,"abc"))
}

【问题讨论】:

    标签: spring spring-boot kotlin spring-webflux


    【解决方案1】:

    is 前缀字段(带有 camelCase 或 snake_case 模式)只有在它们是布尔类型时才会被序列化。您可以在here找到更多详细信息。

    如果您希望保留is 前缀,您可以使用@get 使用站点目标来实现。只需在 is_secure 字段上使用 @get:JsonProperty("is_secure") 即可。

    【讨论】:

    • 谢谢,我尝试搜索多个地方,但没有找到任何东西。
    • 是的,同意问题本身并不是很明显。这种行为的主要原因是序列化符合 Java Beans 规范 §8.3.2 download.oracle.com/otndocs/jcp/… 。根据它,is-getter 仅对布尔属性有效。
    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2014-12-30
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多