开发者社区> 问答> 正文

如何用gson存储一个java对象,然后取出来的时候值完全还原成原先的结构?报错

本人现有的项目中,有一个对象需要去连接其他系统,获取IP数据,每次启动服务需要花费大量的时间,而且存在对方服务关闭的情况,现在想把这个进行改造,把对象存在redis服务器中,当我获取到改对象的时候,用gson转成json类型存储放到redis服务器中,但是每次取出来都会报错。查看了错误原因,是该对象下面有一个私有的TreeMap<A,B>这个属性,当用gson取的时候,这个TreeMap<A,B>的对象无法转义,会报:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was 。。这样的错误,请问下有谁知道这个怎么办吗?

展开
收起
爱吃鱼的程序员 2020-06-14 16:53:43 762 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    已经找到解决方案,gson下面有一个gsonbulider,里面有个参数complexMapKeySerialization,使用Gsongson=newGsonBulider.enableComplexMapKeySerialization.create()即可解析出参数。

    2020-06-14 16:54:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载