大家前后端规范是怎么制定的呢?

2018-04-11 09:08:03 +08:00
 wojfsdj

比如使用 JSON 格式,那么怎么有效的表示空数据呢? 空字符串是返回 null, 还是"" ,数字是返回 null,还是 0 呢,集合是[],还是 null?

其他方面还有哪些是需要前后端一些协商规范的呢?希望大家指点一二

12034 次点击
所在节点    程序员
68 条回复
gbc123456
2018-04-11 09:18:11 +08:00
我回复的时候,点击:40 次,没人回答你啊?

那我讲讲我这里的规范,空字符串 定义为 "",数字定义为 0 , 集合你应该猜到了,当然是 []

什么?你问我为啥?
因为,数据做签名处理, AES 加密什么的,比较好做,不会出现一些解密失败的情况

以上就是看看,觉得有问题请指出,谢谢
silencefent
2018-04-11 09:18:45 +08:00
口口相传
ChefIsAwesome
2018-04-11 09:21:51 +08:00
“你这地方怎么挂了?”
“我看看…因为你回了个 null ”
“你不能判断下吗?”
“你不能判断下吗?”
RainFinder
2018-04-11 09:23:40 +08:00
后端定好,前端看着办
leeyom
2018-04-11 09:25:49 +08:00
可以看看阿里巴巴的[《 Java 开发手册》]( https://github.com/alibaba/p3c),里面讲的很详细。
sagaxu
2018-04-11 09:29:17 +08:00
尽量用 null 表示空值,并且序列化时忽略 null 字段
v2410117
2018-04-11 09:31:20 +08:00
最讨厌的就是后端返回 null,文档全写的是 String 类型,到时候有数据了,什么 number、bool、对象、集合都出来了,程序就到处都崩瞎卡拉卡(别问我为啥不和后台沟通),二手私活,后端也是外包的!找不到人!所以现在都是数据请求回来自己先判断一波,把数据处理好了再用,一个不靠谱的后端的随时都可能在数据中埋雷让程序崩溃!(菜鸟个人观点,后端大佬勿喷,理性分析)
wizardoz
2018-04-11 09:32:15 +08:00
就数字来说,0 和 null 是两种含义,字符串的 null 和""、数组[]和 null 同理。
你说用 0 代表空数据,那你用什么代表 0 ?
yimity
2018-04-11 09:33:12 +08:00
空字符串定义为 "",数字定义为 0 , 集合你应该猜到了,当然是 []
littleshy
2018-04-11 09:33:16 +08:00
除集合外,其他可为 null。
wojfsdj
2018-04-11 09:34:52 +08:00
@leeyom 之前看过,但是好像没有找到这方面的规范
wojfsdj
2018-04-11 09:35:48 +08:00
@v2410117 o(︶︿︶)o 那你可能判断的类型就有点多了
wojfsdj
2018-04-11 09:36:36 +08:00
@gbc123456 数字空定义为 0,那如果是想表示 0 怎么办呢?
v2410117
2018-04-11 09:41:42 +08:00
@wojfsdj 遇到这种情况了能咋办呢,难不成找到后端让他改,不现实吧,反正都是在基类里判断,也不多吧,无非就是判断下集合和对象,其他的统一转成 String 处理了。
queuey
2018-04-11 09:51:53 +08:00
瞎几把搞的 json 格式能把人坑死
night98
2018-04-11 09:57:45 +08:00
字符串 null,数字 null,数组或集合[],其他待定,后端确定就好了,前端跟着后端规范走
netlxl
2018-04-11 09:58:23 +08:00
json 是序列成字符串的简单对象,支持 null。所以,能用 null 的就别做无谓的转换。
""显然不可取,除非它就表示空字符串而不是 null (另外既然前后端分离了,那后端自然也不需要考虑 null 显示成空白的设计了。)。
数字最好也是 null,但用 0 也可以,取决与前后端的协商。不过建议还是用 null,虽然这需要前端反序列化后的 JavaScript 对象中,这个字段的类型不能是基本类型,至少也得是 Numbei 对象。
数组应该没啥说了,null 和[]在绝大多数情况下都是表示一个含义。
resturlaub
2018-04-11 09:58:41 +08:00
自己去看代码啊
BearD01001
2018-04-11 10:00:06 +08:00
空字符串定义为 "",数字我偏向于定义为 null,因为有时候确实需要区分 0 数据与无数据,集合当然是 []。最烦没数据都返回 null 的,拿到数据用的时候都要小心翼翼的,特别是多维集合,每一层每一个数据用之前都要 if 判断一遍,烦死了!
h1367500190
2018-04-11 10:02:49 +08:00
@ChefIsAwesome 和我司后端一个卵样,返回的数据什么类型的都有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX