我正在使用一个请求,它的参数名称是__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/