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

json真的好严格

  •  
  •   kennedy32 · 2013-05-29 00:53:19 +08:00 · 4938 次点击
    这是一个创建于 4190 天前的主题,其中的信息可能已经有所发展或是发生改变。
    换行不对,一个标点符号不对,单双引号不对都会引起整个表读不到
    21 条回复    1970-01-01 08:00:00 +08:00
    ccdjh
        1
    ccdjh  
       2013-05-29 01:00:06 +08:00 via iPhone
    囧,你手写?
    kennedy32
        2
    kennedy32  
    OP
       2013-05-29 01:15:03 +08:00
    @ccdjh 不然呢,数据不多,以为手写比较方便,到后来…………
    txlty
        3
    txlty  
       2013-05-29 01:31:06 +08:00
    array to json函数,各种语言都有吧
    json_encode($array);
    kennedy32
        4
    kennedy32  
    OP
       2013-05-29 01:38:21 +08:00
    @txlty 数据不多就没找,就当加深学习印象了
    zhujinliang
        5
    zhujinliang  
       2013-05-29 08:24:08 +08:00
    唯一跟js中对象写法不同的就是key或字符串都要用双引号包裹,不是么
    lichao
        6
    lichao  
       2013-05-29 08:28:09 +08:00
    @zhujinliang 说得很对
    liuyao729
        7
    liuyao729  
       2013-05-29 08:48:36 +08:00
    好像没怎么错过。严格是好事呀
    BOYPT
        8
    BOYPT  
       2013-05-29 09:11:35 +08:00   ❤️ 1
    最恶心的就是手写构建xml/json数据的代码。好端端放着自动编码库不去用,写这样的东西来摧残代码维护者的狗眼
    RisingV
        9
    RisingV  
       2013-05-29 09:15:24 +08:00
    json是我见过最宽松的了,连变量类型都没几个,很适宜人类阅读。ASN.1、XDR那些东西才叫严格复杂了。
    tangzx
        10
    tangzx  
       2013-05-29 09:20:54 +08:00   ❤️ 1
    json严格的是语法,宽松的是语义, 严格的语法能让 lexer的效率更高,宽松的语义能够让其很容易被学习、编写、阅读
    @RisingV
    @kennedy32
    davepkxxx
        11
    davepkxxx  
       2013-05-29 09:38:14 +08:00
    json语法一点都不严格吧。
    yakczh
        12
    yakczh  
       2013-05-29 10:30:20 +08:00
    json属性值 要用引号括起来,js中object就不用
    heroicYang
        13
    heroicYang  
       2013-05-29 10:34:45 +08:00
    行数多了之后修改起来要小心谨慎,少掉逗号、引号就麻烦了。所以我一般都是用yaml,然后自动编译为json。
    RisingV
        14
    RisingV  
       2013-05-29 10:38:58 +08:00
    @tangzx 基于string的而不是binary的数据交换格式,要处理各种不同的各种编码,效率上已经吃亏了,优点就是适宜于阅读。再者对于json,效率的问题,语法严格是其次的(为了提高容错性,很多lexer的实现其实对语法要求不严),主要是足够简单。xml语法也很严格,但是它太繁琐了。
    0bit
        15
    0bit  
       2013-05-29 18:58:41 +08:00
    我们公司用Python,总是看到有人不用json.loads()和json.dumps()而是用eval()和str()。
    lotem
        16
    lotem  
       2013-05-29 20:30:03 +08:00
    YAML 好。
    yangzh
        17
    yangzh  
       2013-05-29 21:54:10 +08:00
    @RisingV json 标准要求utf8,不存在编码问题。
    RisingV
        18
    RisingV  
       2013-05-30 09:43:52 +08:00
    @yangzh json的标准中根本没有这一条。即便标准是utf8。你能保证你获取的原始数据是utf8吗?你不需要封装的时候转化吗?只要是基于string,都要处理编码。
    ijse
        19
    ijse  
       2013-05-30 11:47:48 +08:00
    @kennedy32

    有个cson, 还不错, 从coffee-script出来的。。。。
    @kennedy32
    @lotem
    @yangzh
    swulling
        20
    swulling  
       2013-05-30 12:11:23 +08:00
    @RisingV
    http://www.ietf.org/rfc/rfc4627.txt?number=4627

    JSON text SHALL be encoded in Unicode. The default encoding is
    UTF-8.

    必须是Unicode,默认是UTF-8,也可以是UTF-16等
    diligence24
        21
    diligence24  
       2013-05-30 18:35:02 +08:00
    对称美~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2741 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:45 · PVG 15:45 · LAX 23:45 · JFK 02:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.