`
guoyiqi
  • 浏览: 966032 次
社区版块
存档分类
最新评论

如何使用Gson序列化和反序列化

 
阅读更多

整了两天,我C,不得不骂一句,这该死的代码!!!

我遇到的问题就是用Gson序列化和反序列化对象以及对象的List过程中反序列化出错。

其实,最近在做一个同步的项目,客户端和云端都有一个相同的对象,基于GAE的云端对象的序列化和反序列化完全正常,就TM的在客户端有异常,不是我脾气暴,这实

在是太让人无奈了,反复的测啊测啊,试啊试啊,唉,java真是开源的么???

先说解决方案,咱再看问题。

解决方案:实体类中必须要有一个无参构造函数;而且绝对不能有太特别参数的

构造函数,例如Cursor类型的作为参数。

先贴代码

一、实体类BabyInfo.java:

此对象就是一个婴儿信息,定义一些属性,然后构造函数,然后是一些get和set。


二、序列化和反序列化类BabyDataSerialiseHelper.java:

这个里面提供了将对象序列化成字符串toJson()和从字符串反序列化成对象fromJson_BabyInfo()或者对象的List集合fromJson_BabyInfoList()的方法。

三、测试类BabyDataSerialiseHelperTest.java:



这里面就是定义BabyInfo对象和List<BabyInfo>对象,然后序列化和反序列化,

打印出结果。

可是总是不行,反序列化BabyInfo和List<BabyInfo>对象时就是出错,而且还不

出异常呢,异常直接被隐藏掉了。悲催欲死啊。

经过反复比较和调换,才知道,实体类中少了个无参构造函数,而且多了个

Cursor

类型的构造函数,唉,鬼知道是这个原因啊,网上搜的都不靠谱,就一个


提到要用无

参构造函数的,可是还是错,鬼知道Cursor形参的构造函数也会错啊。





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics