说到数据交换格式,现在大多数系统之间通信都用 JSON。它轻量、易读、结构清晰,特别适合在网络架构中传输和存储特定类型的数据。
结构化的配置信息
比如一个网站的前端需要加载用户偏好设置:主题颜色、字体大小、是否开启夜间模式。这些数据有明确的层级关系,用 JSON 存再合适不过。
{
"theme": "dark",
"fontSize": 16,
"autoNightMode": true,
"language": "zh-CN"
}
这样的结构,前后端都能快速解析,改起来也方便。
API 接口返回的数据
在微服务架构里,订单服务调用用户服务查信息,返回的用户资料通常就是 JSON。名字、手机号、注册时间这些字段组合在一起,天然适合用对象形式表达。
{
"userId": "u10086",
"name": "张伟",
"phone": "138****8888",
"registerTime": "2024-03-15T10:30:00Z"
}
移动端、网页、后台脚本拿到这种数据,几乎不用转换就能直接用。
嵌套的树形数据
菜单栏、组织架构图、商品分类这类有父子关系的数据,JSON 的嵌套能力就体现出来了。一级分类下面挂二级,二级再带子项,写出来直观,读起来也不费劲。
{
"name": "电子产品",
"children": [
{
"name": "手机",
"children": [
{"name": "安卓手机"},
{"name": "iPhone"}
]
},
{
"name": "电脑"
}
]
}
日志中的事件记录
系统运行时产生的操作日志,比如“用户登录”、“订单提交失败”,每条记录包含时间、类型、详情,用 JSON 存能保留结构,后续分析也方便。
{
"timestamp": "2024-05-20T08:22:10Z",
"event": "login_failed",
"userId": "u10011",
"reason": "invalid_password",
"ip": "192.168.1.100"
}
不适合存什么
虽然 JSON 好用,但不是万能的。大文件比如图片、视频,直接转成 base64 存 JSON 会膨胀得很厉害,拖慢传输速度。还有高精度数值,像金融交易里的金额,用 JSON 的 number 类型容易丢精度,得用字符串存。
另外,频繁更新的大块数据也不建议用 JSON 文本存。比如实时聊天记录,每次追加都要重写整个文档,效率低。这种更适合用数据库或二进制格式处理。