V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhichaozhang
V2EX  ›  程序员

xml vs json 为什么还有很多项目在用 xml 做配置文件或者传输文本

  •  1
     
  •   zhichaozhang ·
    threadshare · 2019 年 1 月 22 日 · 6232 次点击
    这是一个创建于 2549 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我个人感觉 json 会更好用一些, 但是看一些系统发现还是有很多地方在用 xml,比如说微信支付 一些框架的配置结构等等。我在知乎上看了一些 但是好像并没有给出 xml 的明显的优点,而作为阅读而言,我个人觉得 json 反而更容易理解,有知道这个的历史原因或者确实有些地方就应该使用 xml 来做。

    19 条回复    2020-09-02 22:02:02 +08:00
    CDuXZMAPgHp1q9ew
        1
    CDuXZMAPgHp1q9ew  
       2019 年 1 月 22 日
    还可能有个原因, xml 支持 xsd 元数据定义. 写错了 idea 会提示
    zhichaozhang
        2
    zhichaozhang  
    OP
       2019 年 1 月 22 日
    @wujichao 嗯嗯 可能有这个原因 因为要校验配置格式定义的一致性问题
    zjsxwc
        3
    zjsxwc  
       2019 年 1 月 22 日
    虽然看起来 json 刚开始会少写一些代码,

    但 xml 可以更少的代码包含更多的元数据,json 却写更多。。
    reus
        4
    reus  
       2019 年 1 月 22 日
    xml 手写麻烦,但 json 也不见得好
    例如注释都不支持
    shyangs
        5
    shyangs  
       2019 年 1 月 22 日
    google XML Hell

    Java 的配置文件不是 properties 就是 XML, 已经有历史惯性了.
    JSON, YAML, TOML 都是后起的.
    zhichaozhang
        6
    zhichaozhang  
    OP
       2019 年 1 月 22 日
    @shyangs 是有一定的历史原因 但是像微信支付这种传输文本竟然也用的是 xml。。。
    zhichaozhang
        7
    zhichaozhang  
    OP
       2019 年 1 月 22 日
    @reus 注释这个可以算一个原因
    ferock
        8
    ferock  
    PRO
       2019 年 1 月 22 日
    @zhichaozhang 说明对接系统里有 java 的影子
    zhichaozhang
        9
    zhichaozhang  
    OP
       2019 年 1 月 22 日
    @zjsxwc 这个怎么理解? 在 json 中以对象的形式定义感觉一样啊 可能是我没理解到位
    quinoa42
        10
    quinoa42  
       2019 年 1 月 22 日
    Rust 大家都用 toml,舒服多了
    zjsxwc
        11
    zjsxwc  
       2019 年 1 月 22 日
    @zhichaozhang

    json 可以继承别的 json 格式吗,xml 可以

    json 可以改变、修复当前已有数据格式的定义吗,xml 可以
    zhichaozhang
        12
    zhichaozhang  
    OP
       2019 年 1 月 22 日
    @quinoa42 yaml json 都还好
    yinzhili
        13
    yinzhili  
       2019 年 1 月 22 日
    xml 可以写注释
    json 咋办?
    xfriday
        14
    xfriday  
       2019 年 1 月 22 日
    配置用 yaml (可以注释且易于阅读)
    数据用 json 或 protobuf
    abcbuzhiming
        15
    abcbuzhiming  
       2019 年 1 月 22 日
    xml 拥有元数据定义能力,这个能力 json 是不具备的,所以某些特殊场合,必须上 xml,没办法

    @xfriday 真心不喜欢吹 yaml,yaml 这个东西,哪里好阅读了?人类视觉上下扫描的速度远不如左右左右的特点,决定 yaml 这种上下式树状层级组织配置文件注定没有 properties 文件好阅读
    Sparetire
        16
    Sparetire  
       2019 年 1 月 22 日 via Android
    toml+1
    yaml 三十行以内还行
    sadhen
        17
    sadhen  
       2019 年 1 月 23 日
    xml 其实是很优秀的
    Alfons
        18
    Alfons  
       2019 年 1 月 23 日
    ini 也很不错啊
    Cbdy
        19
    Cbdy  
       2020 年 9 月 2 日 via Android
    @wujichao 现在 JSON 也有 JSON Schema 支持了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    ♥ Do have faith in what you're doing.