服务器响应JSON格式的那些事儿

最近在公司做前端开发,经常和后端接口打交道。刚开始对接的时候,最常听到的一句话就是:‘这个接口返回的是标准 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。