如何解决使用Jackson使用模式反序列化Property
我正在使用一个请求,它的参数名称是__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"}""")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。