gson坑
一直只做自己会做的,就什么也做不成。最重要的是,你自己有没有兴趣——《碧蓝之海》
前两天使用Gson中遇到一个坑
同事使用
| Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); | 
创建gson对象
所以到我这,出现了字段不序列化,或者反序列化不了的问题
例如下面这个类
| 
 | 
使用以下代码进行序列化
| Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); | 
输出结果为
| {"firstName":"Supa"} | 
可以看到只有firstName被序列化了
这是因为我们只有firstName上加了@Expose并且serialize值为true
如果没有这个注解或者serialize为false时,它就不会被序列化
但注意还有个属性deserialize,当它为false时,反序列化json到对象时,会过滤该属性
例如我使用这段json去反序列化
| { | 
| String myJson = "{\"firstName\":\"Supa\",\"lastName\":\"Hino\",\"emailAddress\":\"achao1441470436@gmail.com\",\"password\":\"39a8456c26584ba987d4a9f1f8f75fc1\"}"; | 
输出结果
| User(firstName=Supa, lastName=Hino, emailAddress=null, password=null) | 
所以在使用Gson的时候,一定要注意Gson对象是如何创建的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蒋立坤的博客!
 评论
Va









