最近在公司做前端开发,经常和后端接口打交道。刚开始对接的时候,最常听到的一句话就是:‘这个接口返回的是标准 JSON 格式。’ 听着挺专业,其实用起来也没那么复杂,慢慢就习惯了。
什么是服务器响应的 JSON 格式
简单来说,当你的网页或手机 App 发起一个请求,比如登录、加载列表,服务器处理完之后会“回话”,这个“话”大多数时候就是 JSON 格式的数据。它长得像这样:
{
"code": 200,
"message": "请求成功",
"data": {
"username": "zhangsan",
"age": 28,
"isVip": true
}
}
这种结构清晰,前后端都容易解析。code 表示状态,message 是提示信息,data 里才是真正要的数据。前端拿到后,直接用 JavaScript 处理就行,比如 data.username 就能取出用户名。
为什么大家都用 JSON
以前也见过 XML 格式,但那玩意儿标签太多,看着累。JSON 更轻量,写起来也顺手。而且现代浏览器原生支持 JSON.parse() 和 JSON.stringify(),转换起来不费劲。
举个生活中的例子:就像你点外卖,APP 问后台‘附近有哪些餐馆’,服务器不会回一堆乱码,而是规规矩矩给你一份清单,每家店的名字、距离、评分都列得清清楚楚——这其实就是 JSON 在背后干活。
常见问题怎么处理
有时候接口返回的不是标准 JSON,页面就可能报错。最常见的就是服务器出错了,返回了一段 HTML 错误页,比如 500 页面,这时候前端一 parse 就崩了。所以写代码时最好加个判断:
try {
const result = JSON.parse(responseText);
// 正常处理数据
} catch (e) {
console.error('数据格式异常', responseText);
}
还有些老接口喜欢返回字符串类型的数字,比如 "age": "25",明明是数字却用引号包着,处理时得小心类型转换,不然做计算可能出问题。
调试小技巧
Chrome 开发者工具的 Network 面板特别实用。点开某个请求,Response 标签页直接就能看到返回的 JSON,还能自动格式化,折叠展开字段,找数据特别方便。
如果后端返回的是压缩成一行的 JSON,也不用慌,点击那个小小的格式化按钮,立马变得整齐可读。
现在很多项目都用 Axios 或 Fetch 发请求,默认情况下它们会自动识别 Content-Type 是 application/json 的响应,并尝试转成对象。只要接口规范,基本不用手动 parse。