JSON 设计得真的反人类,为什么不能像 PHP 数组那样简洁明了?

2022-03-16 11:29:35 +08:00
 kisshere
我到现在都还没搞明白什么时候该用大括号,什么时候该用中括号,另外,我还是没搞明白 key 到底要不要加引号???加不加引号是否影响各种浏览器兼容性?为什么不像 php7 那样直接全部用中括号,统一格式,简洁明了。这为本来就复杂的前端更加雪上加霜
14966 次点击
所在节点    程序员
134 条回复
3dwelcome
2022-03-16 11:44:04 +08:00
习惯了 xml ,改用 json 后,发现竟然没有对应的数组结构。
json 转到 xml 不行,xml 转到 json 没问题,真是晕过去。
darluc
2022-03-16 11:45:08 +08:00
XML 才是正解
opengps
2022-03-16 11:47:54 +08:00
json 的出发点,是相比于 xml 更高密度更低复杂度
跟数组完全不在一个维度上,不适合用来对比
kenvix
2022-03-16 11:49:40 +08:00
?被 php 惯坏了这是?
yazoox
2022-03-16 11:50:24 +08:00
JSON 格式,能够如此广泛的被使用,就应该知道它设计是符合当下需求的啊。
你看 20 年前设计的 xml ,现在还有多少新产品会去用?
Rocketer
2022-03-16 11:51:05 +08:00
其实严格来说,js 的数组也是对象,开发中用{}代替[]也能用
BBCCBB
2022-03-16 11:52:46 +08:00
尴尬了
Actrace
2022-03-16 11:53:12 +08:00
php 的心智负担确实是极低,基本上 array 一把梭,变量类型自动推导。
所以更换到其它语言的时候,楼主还是需要仔细看一下其它语言的数据类型和数组,并应用在合适的场景。

所以当你认为 json 反人类的时候,可能你也变成了跟楼下喷 PHP 的那些人一样。

有一些编程语言虽然不如 php 那样心智负担比较低,但是它们那么设计是有一定的场景需求的(就像汽车的手动挡和自动挡),所以用合适的工具去做合适的事情是一个成熟的人应该具备的能力,不要代入情感和偏见。

ps. 很多语言都有语法糖,但是可能都不如 php 甜,个人看法。
littleylv
2022-03-16 11:54:17 +08:00
这个世界已经这么黑 PHP 了,OP 不要再给 PHP 招黑了
murmur
2022-03-16 11:56:20 +08:00
你不会用格式化吗?
we8105
2022-03-16 11:57:30 +08:00
???
3dwelcome
2022-03-16 11:57:48 +08:00
@yazoox xml 足够简单,就是一棵单根树,很多语言都可以直接导入。属于计算机的基本数据结构。
json 就比较复杂了,通常跨语言,都需要导入第三方库才能方便使用。
debuggerx
2022-03-16 11:58:49 +08:00
@BeautifulSoap 不光是分不清数组和字典,还不知道返回[]、{}、null 有啥区别:"不一样都是空吗"
最可怕的还是同一个接口入参不同返回格式能乱变,比如参数 n 大于 5 返回[1,2,3,4,5,6],小于 5 返回{"1": 1, "2": 2, "3": 3},然后还是那句老话:“这不是一回事儿吗”
Dvel
2022-03-16 12:00:57 +08:00
我觉得挺简明的,尤其是写 Python 的时候。。。
sampeng
2022-03-16 12:04:31 +08:00
@ZE3kr

我知道对于初级 php 程序员来说,认为这两个是同一个东西。但是,稍微有点经验的。从心智上是能分得清这两者是有区别的。混在一起只是语法糖,不代表从逻辑上是同一个东西。
sujin190
2022-03-16 12:04:58 +08:00
php 的数组才是一大毒瘤啊,大哥,数据结构不明确,各种瞎容错瞎转换,复杂流程中简直不要太坑人
rekulas
2022-03-16 12:08:18 +08:00
我主语言也是 php ,接触语言多了之后,你会发现,php 的数组才是反人类
相比 json 设计很优雅很清晰
phxsuns
2022-03-16 12:09:49 +08:00
中括号和大括号都分不清嘛?数组和对象区别蛮大的吧。
siweipancc
2022-03-16 12:13:00 +08:00
害怕
liuzhaowei55
2022-03-16 12:15:35 +08:00
请不要给 PHP 招黑,我谢谢您了

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

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

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

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

© 2021 V2EX