同事为了 JSON 怎么写吵起来了!请各位断案!

2019-12-16 14:42:11 +08:00
 codeismylife

A 同事:

[
	{
		"192.168.1.2": {
			"Memory": "10%",
			"HardDisk": "25"
		},
		"192.168.1.1": {
			"Memory": "25%",
			"HardDisk": "10"
		}
	}
]

B 同事:

[
	{
		"ip": "192.168.1.1",
		"Memory": "10%",
		"HardDisk": "25"
	},
	{
		"ip": "192.168.1.2",
		"Memory": "25%",
		"HardDisk": "10"
	}
]

我认为 B 写的是对的,但是不知道怎么科学地反驳 A。A 这么写好吗?不好的话 A 的问题在哪儿呢?

33317 次点击
所在节点    程序员
342 条回复
LEX1994
2019-12-16 18:23:55 +08:00
b 结构简单
wanglufei
2019-12-16 18:24:50 +08:00
别用 json 了,protobuf flattenbuf 不香吗
shm7
2019-12-16 18:38:10 +08:00
@qwerthhusn 有点道理,写里面人家还要做空校验
yejianmail
2019-12-16 18:41:17 +08:00
我只能接受 B
ww2000e
2019-12-16 18:48:18 +08:00
我用 a 比较多,这才发现好多人不喜欢。。
jarnanchen
2019-12-16 18:48:34 +08:00
A 如果出现特殊情况了就很麻烦
比如 ip 重复,或者为 null 了
strongcoder
2019-12-16 18:49:12 +08:00
上一个这么搞的 A 被我们客户端开发打爆了
mansurx
2019-12-16 18:50:41 +08:00
插楼问一下,如果存 es 的话,应该是支持 B 的类型吧,不知道类型 A 支不支持
luozic
2019-12-16 18:52:19 +08:00
直接点,后面同一个 IP 下面再挂新东西咋表示?
guanhui07
2019-12-16 18:52:49 +08:00
B 好
hoyixi
2019-12-16 18:57:00 +08:00
个人觉得后者好些,前者如果 IP 字段发生变化,代码又得重新改
fgk
2019-12-16 19:10:56 +08:00
用了 ts 的话 B 可以定义很清晰的接口
zuokanyunqishi
2019-12-16 19:20:46 +08:00
PHP 表示不背这锅
lepig
2019-12-16 19:31:21 +08:00
BBBBBBBBBBBBBBBBBBBBBBBBBBBBB
zgq3337
2019-12-16 19:34:01 +08:00
压缩与展开的区别
类与函数的区别
Anarchy
2019-12-16 19:34:43 +08:00
A 省略了一个 Key 的信息,这就意味着解析方需要额外的工作补充这个 Key 信息。ORM 框架也需要完整信息才能做好映射
MonoLogueChi
2019-12-16 19:35:03 +08:00
个人认为 B 写的好一点,但是 A 写的用起来方便
answerhuang
2019-12-16 19:38:52 +08:00
数据传输用 B, 自己本地用的话, 转换成 A 格式.
sivacohan
2019-12-16 19:53:32 +08:00
@DOLLOR 你这个玩法我还是第一次见。挺有用的。
jzmws
2019-12-16 20:01:00 +08:00
b , a 的 要是换个 ip 就 gg 了

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

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

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

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

© 2021 V2EX