kotlin - 使用Jackson使用模式反序列化Property

标签 kotlin jackson deserialization

我正在使用一个请求,它的参数名称是__parameter10 / 02/2020,该日期已发送到请求中。
有没有一种方法可以使用Property注释反序列化此方法?另外,我该如何使用自定义序列化程序呢?
杰森(Json)示例:

{"yearly_return10/02/2020" : "2.87", "__monthlyreturn_current10/02/2020": "-0.0853703899653",}

最佳答案

您可以尝试@JsonAnySetter

class Response {
    lateinit var yearlyReturn: BigDecimal
    lateinit var monthlyReturnCurrent: BigDecimal

    @JsonAnySetter
    fun set(key: String, value: String) {
        when {
            key.contains("yearly_return") -> yearlyReturn = BigDecimal(value)
            key.contains("monthlyreturn_current") -> monthlyReturnCurrent = BigDecimal(value)
        }
    }
}

val objectMapper: ObjectMapper = ObjectMapper().registerModules(
        ParameterNamesModule(),
        Jdk8Module(),
        JavaTimeModule(),
        KotlinModule()
)

val response = objectMapper.readValue<Response>("""{"yearly_return10/02/2020" : "2.87", "__monthlyreturn_current10/02/2020": "-0.0853703899653"}""")

关于kotlin - 使用Jackson使用模式反序列化Property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64336650/

相关文章:

for-loop - 是否可以在 Kotlin 中编写一个 for 循环,在迭代过程中我可以将索引更改为我想要的任何值?

Kotlin 重载解析标准库中的歧义

android - 最后一个元素在 LazyColumn 中不可见。喷气背包组成

java - 自定义 Jackson 反序列化器以省略某些对象的映射

c# - 在 c#.net 中通过套接字序列化和反序列化多个对象

kotlin - 在 Kotlin 中为具有函数链的可空值返回默认值

java - Jackson 无法解析 ISO8601

java - Jackson:如何使用简写属性值反序列化 json

json - Jackson 解析特定数组

c++ - Cereal 二进制文件序列化/反序列化