后面慕课电影要解析JSON数据,使用GSON的话,请求的json字符串和GSON要求顺序的对不上。

后面慕课电影要解析JSON数据,使用GSON的话,请求的json字符串和GSON要求顺序的对不上。

后面慕课电影要解析JSON数据,使用GSON的话,请求的json字符串和GSON要求顺序的对不上。

# 具体遇到的问题
   请求的json字符串时按照a="a",b="b",c="c",写的类也是这么个顺序。但是GSON要求是a="a",c="c".b="b"这种,然后就无法解析出来
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果
网上试了重写GOSN的builder来有点用,但是还是不清楚GSON的默认排序方法,是序列化问题吗,还有涉及复杂的键值数据时又该如何处理呢。这个请求的数据条目


有点多www.imooc.com/api/movie

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,你是说利用json字符串,生成Gson吗?是的,要求顺序一致,字段名与数据类型也要一致,并且要注意数据结构问题。你根据json的顺序,定义Gson对应类属性的顺序,字段名与数据类型。如果是复杂的,你可以在类中不用基本数据类型,把它再定义一个类,这样嵌套就可以了。

  • 我类是这么定义的 public class Result { public int count; public int start; public int total; public Movie[] movies=null; public Result(int count, int start, int total, Movie[] movies) { this.count = count; this.start = start; this.total = total; this.movies = movies; } public Result(){ } 但是用GSON生成json字符串后movies数组跑到第二项了 String stra=gson.toJson(new Result(1,1,1,new Movie[]{new Movie()})); Log.e("TAG",stra); 这个是打印内容,不按套路来呀这个 E/TAG: {"count":1,"movies":[{}],"start":1,"total":1}
    2020-11-05 10:24:52
  • 看着顺序难道是按首字母排序来的吗
    2020-11-05 10:26:35
  • 同学要根据 E/TAG: {"count":1,"movies":[{}],"start":1,"total":1} 来定义你的类属性顺序。参数传递也要按这个顺序来
    2020-11-05 10:47:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师