首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ULong Jackson (反)串行器

ULong Jackson (反)串行器
EN

Stack Overflow用户
提问于 2021-03-25 03:44:45
回答 1查看 51关注 0票数 0

我有一个端点,它将DTO接收到主体中。DTO有一个ULong属性,当我用postman请求端点时,Jackson不会解析(反序列化)该属性。

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

代码语言:javascript
复制
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字段等其他方法。

有人能给我一些处理这个问题的建议吗?

EN

回答 1

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66788258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档