我有一个端点,它将DTO接收到主体中。DTO有一个ULong属性,当我用postman请求端点时,Jackson不会解析(反序列化)该属性。
另外,我尝试创建我的自定义序列化程序?
class ULongSerializer: StdSerializer<ULong>{
override fun serializer(value: ULong, gen: JsonGenarator, provader: SerializerProvider){
gen.writeStartObject()
gen.writeNumber(value) //HERE IS THE PROBLEM
gen.writeEndObject
}
}write number方法既不支持ULong,也不支持write字段等其他方法。
有人能给我一些处理这个问题的建议吗?
发布于 2021-03-27 02:19:07
ULong是一个类,您可以为它may write Jackson序列化程序/反序列化程序,但是这种类型的字段会被编译为字节码,作为原语long类型的字段。因此,超过Long.MAX_VALUE的值将被不正确地序列化/反序列化(作为负值),而定制的序列化/反序列化程序不会对您有所帮助。
看看kotlinx.serialization吧。它具有对无符号整数类型OOTB实验支持。请参阅https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md#experimental-support-for-inline-classes-ir-only
https://stackoverflow.com/questions/66788258
复制相似问题