数据格式的选择,往往从需求开始
做开发的时候,总会遇到数据要存或者要传的情况。比如前端要从后端拿用户信息,或者配置文件需要保存系统参数。这时候,XML 和 JSON 就常被拿出来比较。它们都能表达结构化数据,但用起来差别不小。
长得就不一样
先看个例子。如果要表示一个用户,名字叫张三,年龄30,住在深圳。
用 JSON 是这样的:
{"name": "张三", "age": 30, "city": "深圳"}而 XML 写出来是:
<user>
<name>张三</name>
<age>30</age>
<city>深圳</city>
</user>一眼就能看出,JSON 更紧凑,XML 更啰嗦。标签得开闭,层级靠嵌套,写多了确实累。
解析起来谁更轻松?
现在的语言基本都原生支持 JSON。JavaScript 里直接 JSON.parse() 就行,Python 用 json 模块也几行搞定。前端传个对象给后端,通常默认就是 JSON 格式。
XML 就没那么方便。虽然也有 DOM、SAX 这些解析器,但代码写起来复杂。比如你要取某个节点的值,得先定位路径,处理命名空间,一不小心就出错。除非是老系统或者特定协议要求,不然没人愿意手动折腾 XML。
配置文件里的较量
以前很多 Java 项目用 XML 做配置,像 Spring 的 bean 定义,动辄几百行。后来 Spring Boot 推出 application.yml 和 application.properties,大家才发现原来配置可以这么简洁。
反过来,像 Office 文档(.docx、.xlsx)底层其实是 ZIP 包里装了一堆 XML 文件。这种场景下,XML 的自描述性和扩展性就有优势了——不同程序都能按规范读写内容。
网络传输中的现实选择
现在主流 Web API 基本都用 JSON。体积小,解析快,前后端对接简单。移动端省流量,浏览器少解析时间,用户体验自然好一点。
XML 多见于银行、政府这些传统行业接口。有些 SOAP 协议还在用,请求体一大坨,调试起来头疼。不过它的强校验特性,通过 XSD 能保证数据结构完整,在某些高合规性场景还是有存在的理由。
该用哪个,其实很明确
如果你在做一个新项目,尤其是 Web 或移动端应用,优先选 JSON 准没错。写得快,读得快,社区工具多。
要是对接老系统,或者行业标准规定必须用 XML,那就乖乖配合。别为了“现代化”硬改成 JSON,到时候接口对不上,背锅的是自己。
技术没有高低,只有合不合适。就像螺丝刀和扳手,看着都能拧螺丝,但用错了场合照样坏事。