4.这个还看得过去,至少有个json数据返回。
然而:你给我返回的null
什么意思。。。还不如不返回。。。这样设计有啥意义。。
{
“data”:“null”
}
5.比上面那个更可恶,有错误数据返回,有错误信息描述。
然而:错误数据返回null
不说,错误信息居然返回一个一个url?就这么一点错误信息,还要我再去请求一次服务器获取这个错误信息吗。。 服务器流量不要钱的吧。。。经得起这样折腾?后台哥们啊,走点心吧!为老板省点流量钱吧,同时也要提高用户体验啊!用户请求网络的流量也不能由你这样去折腾。。
{
“data”:“null”,
“desc”:“/error/desc”
}
6. 返回url就算了,为什么加一个/
转义字符?
{
“error”:“//error_desc”
}
7. 返回url就算了,居然还有返回中文的,用的是unicode
转换的?我用的时候要把它转换回来。。很麻烦。。
{
“error”:“/%2F%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF”
}
8. 返回的图片不是url,而是base64编码,我还要去用base64编码去处理。你是在逗我吗?让我看天文数字,给个url很难吗?
9. 还有的是全部是拼音的
{
“cuowuma”: 1,
“cuowuxinxi”:“请求失败”
}
10. 返回的json里面某些字段是java的关键字
问题:json里面某些字段是java的关键字,转成实体类的时候,会报错。
{
“abstract”: “Success”,
“id”: “503”,
“package”: “50”
}
转成实体类如下,会报错:
public class ResultEntity {
private String abstract;
private String id;
private String package;
//…get set方法省略
}
- 对老司机来说,这种小问题当然也是有解决办法的。使用google提供的序列化工具,按下面这样写,就可以正常的将数据反射到字段中了。
public class ResultEntity {
@SerializedName(“abstract”)
private String successInfo;
private String id;
@SerializedName(“package”)
private String packageNumber;
//…get set方法省略
}
- tips:按java编程规范来说,接口中是不能包含java关键字的。所以 奉劝各位
后台新手
不要心存侥幸心理,一切都要按规范来做,这样对你今后的开发会有很多帮助。
11. 返回的相同字段用的不同的数据类型,这个是最苦逼的,解析都不好处理。
比如下面这个,id字段,前面的是数字类型(我们这边暂定为int类型),最后一个是String类型,后台说是GUID,不管它是什么鬼,看到这种只想打人。万一哪天服务器把id都改成int类型了,客户端这边的代码中涉及到这个id字段的所有地方都要跟着改动,这不是坑爹吗。。。
[
{
“id”: “503”,
“name”: “License”,
“picture”: “/userfiles/upload/2017/503.png”
},
{
“id”: “504”,
“name”: “其它”,
“picture”: “/userfiles/upload/2017/504.png”
},
{
“id”: “80896a88d8c3449bb90c4781ddbd4d49”,
“name”: “TH inkaNet”,
“picture”: “/userfiles/upload/2017/81211f2db0c649318e7166e447e91186.jpg”
}
]
12. 多层嵌套的json,在中间的某一层后台返回的是null,这种情况解析起来很麻烦的。
正确做法:不管有没有数据返回,都要写清楚返回字段。
举例说明:
{
“data”: [
{
“id”: “101”,
“info”: [
{
“name”: “张1”,
“code”: “10101”
},
{
“name”: “张2”,
“code”: “10102”
},
{
“name”: “张3”,
“code”: “10103”
}
]
},
{
“id”: “102”,
“info”: [
{
“name”: “张4”,
“code”: “10201”
},
{
“name”: “张5”,
“code”: “10202”
},
{
“name”: “张6”,
“code”: null
}
]
},
{
“id”: “104”,
“info”:null
}
]
}
13. 有数据的时候返回的类型不统一,有数据的时候返回的是json array类型,没有数据返回的时候成了json object类型。
比如我遇到过的后台返回的数据举例如下:
有数据返回的时候:
{
“id”: “102”,
“info”: [
{
“name”: “张4”,
“code”: “10201”
},
{
“name”: “张5”,
“code”: “10202”
},
{
“name”: “张6”,
“code”: null
}
]
}
没有数据返回的时候,info这个json array类型怎么就变成了json object类型?莫名其妙:
{
结语
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图:
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
再附一部分Android架构面试视频讲解:
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
再附一部分Android架构面试视频讲解:
[外链图片转存中…(img-mENEGDdR-1715418825349)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!