V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisshere
V2EX  ›  程序员

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

  •  
  •   kisshere · 2022-03-16 11:29:35 +08:00 · 14824 次点击
    这是一个创建于 743 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我到现在都还没搞明白什么时候该用大括号,什么时候该用中括号,另外,我还是没搞明白 key 到底要不要加引号???加不加引号是否影响各种浏览器兼容性?为什么不像 php7 那样直接全部用中括号,统一格式,简洁明了。这为本来就复杂的前端更加雪上加霜
    第 1 条附言  ·  2022-03-16 12:01:46 +08:00
    给 phper 丢脸了,被喷也值了,我还是去恶补一下前端知识吧
    134 条回复    2022-03-18 15:23:53 +08:00
    1  2  
    qsnow6
        101
    qsnow6  
       2022-03-16 17:56:19 +08:00
    @dongfang #99 确实蛮多的
    ikas
        102
    ikas  
       2022-03-16 18:18:37 +08:00
    看到还有人说 xml 什么的...难道没人知道 e4x 了吗???

    好不好用,无非就是人为支持而已
    leonidas
        103
    leonidas  
       2022-03-16 18:49:42 +08:00
    喷子真多 为喷而喷 散了吧
    zhengfan2016
        104
    zhengfan2016  
       2022-03-16 22:01:21 +08:00
    额。。。我觉得 json 挺好的,不管是 python 还是 js 用的非常舒服。初用 php 的时候还纳闷既然可以用["a","b"],怎么不能用 json 的{"a":"b"},后来发现 php 的是["a" => "b"]这种写法,也很快适应了。
    magicdawn
        105
    magicdawn  
       2022-03-16 22:03:58 +08:00
    JSON: 是 JavaScript Object Notation
    因为太好用了, 所以被其他语言 adapt, 你这喷的没水平啊~
    Seanfuck
        106
    Seanfuck  
       2022-03-16 22:06:02 +08:00
    json 好用,php 的 array 更好用,xml 难用,别光喷,实用就是王道。
    jk0001688
        107
    jk0001688  
       2022-03-16 22:14:08 +08:00 via Android
    @BeautifulSoap 字典是什么我 c++ php 都会没听说过字典
    BeautifulSoap
        108
    BeautifulSoap  
       2022-03-16 22:37:07 +08:00 via Android
    @jk0001688 建议仔细阅读原文,我说的是“字典(或 map)”,你用 c++的不会连 map 都不认识吧。不同语言叫法不同罢了
    tpkeeper
        109
    tpkeeper  
       2022-03-16 23:16:54 +08:00
    哈哈,在 phper 的卧底吧
    darknoll
        110
    darknoll  
       2022-03-16 23:18:53 +08:00 via Android
    用 yaml 吧,那个好
    encounter2017
        111
    encounter2017  
       2022-03-16 23:38:51 +08:00
    @rekulas 没放反。因为老老实实写问题描述记录日志,大多数人都不会认真看。挑起争议话题立刻就有人来给你纠正标准做法了
    jk0001688
        112
    jk0001688  
       2022-03-16 23:59:27 +08:00 via Android
    @BeautifulSoap map 又不代表 c++,c++里面 list map 都可以手写又不代表啥,php 的 hashmap 百分 99 的程序员都写不出来
    3dwelcome
        113
    3dwelcome  
       2022-03-17 00:13:45 +08:00   ❤️ 1
    楼上别把字典和 std::map 的和 hash 之类搞混啊。

    JSON 字典是有序的,也就是 json 里一个对象,通过 for (key in map)去遍历,是保留原始是顺序的。
    map 是红黑树实现,扔进去后访问是无序的,也就是没办法保留原始 key 的前后顺序。
    hash 一般也是无序的,高级语言为了大家用着方便,可能会加个有序的额外包装容器。
    YvesX
        114
    YvesX  
       2022-03-17 00:37:40 +08:00
    JSON 就是设计得稀烂啊,但 OP 没喷好,请重新喷一下。
    dayeye2006199
        115
    dayeye2006199  
       2022-03-17 05:23:17 +08:00
    可能有点反楼主
    dingwen07
        116
    dingwen07  
       2022-03-17 07:45:17 +08:00 via iPhone
     但凡写过点 python
    dingwen07
        117
    dingwen07  
       2022-03-17 07:46:50 +08:00 via iPhone
    顺便提一下我认为最难用的是 plist 属性表
    RickyC
        118
    RickyC  
       2022-03-17 09:01:57 +08:00
    键从 0 开始的有序数组用[], 别的用{}
    -----
    感觉 json 比 php 先进
    -----
    楼主这是什么情况?
    xqk111
        119
    xqk111  
       2022-03-17 09:14:53 +08:00
    我惊呆了
    xqk111
        120
    xqk111  
       2022-03-17 09:22:53 +08:00
    @raptor 第一次了解 PHP ,原来在 PHP 中两个都是用 [],惊呆了
    DefoliationM
        121
    DefoliationM  
       2022-03-17 09:44:04 +08:00
    转行吧...
    q1angch0u
        122
    q1angch0u  
       2022-03-17 10:10:52 +08:00
    用 string 吧,简洁明了(?)
    BeautifulSoap
        123
    BeautifulSoap  
       2022-03-17 11:00:24 +08:00 via Android
    @jk0001688 ?逻辑不清不知所云。我想说的是 lz 分不清数组还有 key-value 这种数据结构的区别。而不同语言中 key-value 数据结构的名称不同,c++,java ,go 管它叫 map ,Python ,C#管它叫字典,所以我说“字典(或 map )”有问题?
    binge921
        124
    binge921  
       2022-03-17 11:04:26 +08:00
    真就是你的问题 很大的问题
    chniccs
        125
    chniccs  
       2022-03-17 11:09:39 +08:00
    我觉得你是来黑 PHP 的
    wenzichel
        126
    wenzichel  
       2022-03-17 11:09:59 +08:00
    现在很多都开始用 yaml 来配置了!
    Raos
        127
    Raos  
       2022-03-17 11:15:02 +08:00
    尼可能要收藏一个 JSON 册子 https://quickref.me/json
    sockball07
        128
    sockball07  
       2022-03-17 11:18:49 +08:00
    我就说一句以前没感受到的 在垃圾项目里面才发现 php 数组这玩意就是个黑箱 还到处传这传那 里面到底有什么根本就不知道
    ohmycorolla
        129
    ohmycorolla  
       2022-03-17 14:17:32 +08:00
    {}是对象,如{"name":"apple","age":77}
    []是数组,如[1, 2, 3, 4]
    key 要加双引号
    举例一个学生对象:
    {
    "name":"paul",
    "age":20,
    "books":[
    {
    "name":"了不起的盖兹比",
    "price":27.00
    },
    {
    "name":"三国演义",
    "price":33.50
    }
    ]
    }
    Jekins
        130
    Jekins  
       2022-03-17 14:46:06 +08:00
    我觉得 json 很好啊.清晰明了. xml 真是能把人看吐了
    hjtao889
        131
    hjtao889  
       2022-03-17 15:27:19 +08:00
    我怀疑你是来骗回复的
    onesec
        132
    onesec  
       2022-03-18 10:50:28 +08:00
    看到这么多喷楼主的就放心了。
    wizardyhnr
        133
    wizardyhnr  
       2022-03-18 12:10:39 +08:00
    Python 的语法个人比较喜欢,所以看 YAML 更顺眼些,当然我知道反过来很多人是看不惯缩进语法的,doge 。
    astkaasa
        134
    astkaasa  
       2022-03-18 15:23:53 +08:00
    array
    associative array
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3448 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:13 · PVG 19:13 · LAX 04:13 · JFK 07:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.