Kotlin ULong Jackson(反)序列化程序

Kotlin ULong Jackson(反)序列化程序,kotlin,jackson,Kotlin,Jackson,我有一个端点,它接收进入身体的DTO。 DTO有一个ULong属性,当我请求 和邮递员在一起 另外,我尝试创建我的自定义序列化程序 class ULongSerializer: StdSerializer<ULong>{ override fun serializer(value: ULong, gen: JsonGenarator, provader: SerializerProvider){ gen.writeStartObject() gen.write

我有一个端点,它接收进入身体的DTO。 DTO有一个ULong属性,当我请求 和邮递员在一起

另外,我尝试创建我的自定义序列化程序

class ULongSerializer: StdSerializer<ULong>{
    override fun serializer(value: ULong, gen: JsonGenarator, provader: SerializerProvider){
    gen.writeStartObject()
    gen.writeNumber(value) //HERE IS THE PROBLEM
    gen.writeEndObject
  }
    
}
class-ULongSerializer:StdSerializer{
重写有趣的序列化程序(值:ULong,gen:jsongenator,provader:SerializerProvider){
writeStartObject()一代
gen.writeNumber(value)//问题出在这里
writeEndObject将军
}
}
write number方法都不支持ULong,也不支持write field等其他方法


有人能给我一些技巧来处理这个问题吗?

ULong
是一个类,您可以为它使用Jackson序列化器/反序列化器,但是这种类型的字段会作为primivite
long
类型的字段编译成字节码。因此,超过
Long.MAX_VALUE
的值将被不正确地序列化/反序列化(为负值),而自定义序列化程序/反序列化程序对您没有帮助


看看
kotlinx.serialization
。它对无符号整数类型具有OOTB实验性支持。请参见

谢谢您的帮助