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

2019-01-22 16:11:46 +08:00
 zhichaozhang

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

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

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

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

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

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

@xfriday 真心不喜欢吹 yaml,yaml 这个东西,哪里好阅读了?人类视觉上下扫描的速度远不如左右左右的特点,决定 yaml 这种上下式树状层级组织配置文件注定没有 properties 文件好阅读
Sparetire
2019-01-22 17:11:20 +08:00
toml+1
yaml 三十行以内还行
sadhen
2019-01-23 00:14:50 +08:00
xml 其实是很优秀的
Alfons
2019-01-23 09:57:15 +08:00
ini 也很不错啊
Cbdy
2020-09-02 22:02:02 +08:00
@wujichao 现在 JSON 也有 JSON Schema 支持了

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

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

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

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

© 2021 V2EX