我们用生动形象的比喻,从底层数据存储的角度,来对比protobuf和JSON/XML的区别。
1. 比喻:三种打包方式
JSON/XML:写信+贴标签
- JSON就像你写一封信,每一行都写明“这是名字:小明”,“这是年龄:18”。
- XML更像是每句话都用信封包起来,还要写上“小明”这样的标签。
- 这样做的好处是:人一眼就能看懂,但信纸和信封很占地方,内容重复多,邮费贵。
protobuf:打包成编号小包裹
- protobuf像是你和朋友约定好“1号袋子装名字,2号袋子装年龄”,只写编号和内容,不写名字。
- 你寄出的是一堆编号+内容的紧凑小包裹,没有多余的标签和描述,体积小,邮费省,传得快。
- 但别人如果不知道你们的编号约定(.proto文件),就看不懂包裹里是什么。