请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Json反序列化问题

你好老师,请教个问题: List的json反序列化 如果 List的泛型User对象里面还有一个List并且这个List泛型是另一个java对象,就转换不成功?这种情况下怎么封装   用这种方法  new Gson().fromJson(json,new TypeToken<List<Object>>() {}.getType()) 和老师你封装用的TypeReference 有什么不同吗?

正在回答

1回答

Geely 2017-12-02 00:15:12

你好,同学,不是说不成功,而是说咱们在讲解的时候是一个演进,讲解的也是一个思路,同时碰到新的问题不断解决的过程。最开始写的简单的肯定是转换不成功的,但是后面我们不是还讲了两个多泛型反序列化方法吗,那个就是可以的。

其实和Gson的这两个方法类似,都是要精准指定具体的类型,然后来进行反序列化操作。你的问题非常棒

0 回复 有任何疑惑可以回复我~
  • 提问者 原来都是梦 #1
    我研究了下,如果直接用一个json数组字符串进行反序列化成List对象, 里面的字段不是驼峰式的命名,首字母有大写的,这中情况能转换不报错但是数据没有对应到相应的JAVA对象里面,用 @JsonProperty("ID")这个注解可以解决,但是这样多个字段的话都加上这个注解会感觉麻烦,老师您带我们演进的这两个泛型反序列的方法能加以改造解决这种字段大小写的问题吗?还有就是我用new Gson().fromJson(json,new TypeToken<List<Object>>() {}.getType()) 这个方法可以做到忽略字段大小写的问题,但必须把需要反序列化的对象中的字段跟json串中的字段大小写一致才可行,这也能解决,但也想和老师的思路一样可以封装到一个高可用的工具类中。
    回复 有任何疑惑可以回复我~ 2017-12-02 10:51:08
  • Geely 回复 提问者 原来都是梦 #2
    这个场景如果碰到,肯定是可以的,我们可以重写jackson某些接口的实现类,来解决大写小写的问题,有时间的话,最近在忙二期剩余的视频,等忙乎完,到时候抽时间找一下~~有机会群里和大家share一下
    回复 有任何疑惑可以回复我~ 2017-12-02 23:51:21
  • 提问者 原来都是梦 回复 Geely #3
    谢谢老师。
    回复 有任何疑惑可以回复我~ 2017-12-03 09:56:32

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信