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

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

  •  1
     
  •   zhichaozhang ·
    threadshare · 2019-01-22 16:11:46 +08:00 · 5744 次点击
    这是一个创建于 2165 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    但 xml 可以更少的代码包含更多的元数据,json 却写更多。。
    reus
        4
    reus  
       2019-01-22 16:29:44 +08:00
    xml 手写麻烦,但 json 也不见得好
    例如注释都不支持
    shyangs
        5
    shyangs  
       2019-01-22 16:31:44 +08:00
    google XML Hell

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

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

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

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