麦式参考 MickerBook Reference

JSON

JSON

也常被叫作:JSON 格式接口数据格式数据格式交换格式

你可能会这么说

「电脑之间传数据用的通用文本格式,长得像「名字: 值」的清单,人和程序都能读懂。」

JSON JSON

一种人和程序都能读的文本数据格式:花括号包对象、方括号包列表、冒号连名字和值。

JSON 是一张「填好的表」的文本版:{"name": "阿麦", "age": 30} 读作「名字是阿麦、年龄是 30」。它能装四种基础值:文字("阿麦")、数字(30)、真/假(true/false)、空(null),还能组合:方括号 [...] 是一串值(列表),花括号 {...} 是带名字的一组值(对象),可以一层套一层。关键认知:JSON 只是数据,不是程序,它不能执行、没有逻辑,就是一段纯文本。

为什么接口都用 JSON:因为它是纯文本,任何编程语言都能解析;因为结构清楚,人能读、能改、能排错;因为几乎所有语言都有现成的解析函数(前端叫 JSON.parse)。你让 AI 做接口,返回的基本都是 JSON——前端拿到 JSON,解析成页面上的内容。api 词条里那个接口返回示例,本身就是 JSON。

格式有三条硬规矩:字段名必须用双引号(单引号不行);结尾不能有多余逗号{"a":1,} 是错的);所有括号必须配对。AI 生成的 JSON 最常见的错误就是这几种,尤其字段值里混进中文引号、漏逗号、多尾逗号。验证不用靠眼力:把内容原样贴进在线校验器(搜 json validator),或在前端控制台执行一次 JSON.parse,报错就是非法。但格式合法 ≠ 内容正确:校验器只保证「机器能读」,字段名和值对不对,要对着你的预期人工核对。

长什么样 真实可交互,不是截图

{
  "code": 200,
  "user": { "id": 1, "name": "阿麦", "vip": true },
  "orders": [
    { "id": 101, "amount": 29.9 },
    { "id": 102, "amount": 88 }
  ]
}
字段名用双引号没有尾逗号括号配对

上面这段是合法 JSON。判断合法不用背规则:贴进校验器或让程序解析一次,报错就是非法。

拆开看,里面有这几块

  1. 1
    对象 Object

    花括号包起来的一组「名字: 值」,如 {"name": "阿麦"},表示一个带属性的东西。

  2. 2
    数组 Array

    方括号包起来的一串值,如 [1, 2, 3] 或 [{...}, {...}],表示一个列表。

  3. 3
    键与值 Key / Value

    冒号左边是字段名(必须双引号),右边是值:文字、数字、true/false、null、对象或数组。

  4. 4
    解析 Parse

    把 JSON 文本变成程序能用的数据,前端常用 JSON.parse。解析报错 = 这段 JSON 不合法。

常见的有哪几种

接口返回体API response

后端返回数据的标准形态,前端解析后渲染页面。

用在:几乎所有前后端数据交换

配置文件Config file

很多工具的配置文件直接用 JSON(或超集),如 package.json。

用在:项目配置、扩展配置

文档型数据库Document store

MongoDB 这类数据库直接存 JSON 文档,不用先定义表结构。

用在:结构灵活、以文档为整体存的数据

容易搞混?这样区分

JSON JavaScript 对象 JS Object

JSON 是文本格式,字段名必须双引号、不能有注释和尾逗号;JavaScript 对象是程序里的数据结构,裸写字段名也行。把 JSON 当 JS 对象粘贴进代码,常常报错在引号和尾逗号上。

看 JavaScript 对象
JSON HTML HTML

JSON 存数据,HTML 描述展示。把拼好的 HTML 塞进 JSON 里返回,等于数据和展示混在一起,后面想改样式要整个重做。

看 HTML

什么时候用得上

接口返回用户列表

后端返回 JSON 数组,前端解析后逐条渲染成列表。

提交表单

前端把用户填的内容拼成 JSON 发给后端,后端按字段落库。

项目配置文件

package.json 这类配置本身是 JSON,少个逗号整个项目起不来。

你可以这样跟 AI 说

直接复制下面这段,把【】里的换成你的情况。它比一句「帮我加个 X」多说清楚了:改哪里、不许动啥、做完交什么。

【目标】做一个接口,返回 [用户列表] 给前端,返回体是合法 JSON,前端能直接解析使用
【范围】返回体只包含:用户 id、昵称、注册时间三个字段;不做分页、不做筛选
【边界】字段名统一用英文小写加下划线(user_id),不要用中文或大小写混写;不要在返回体里塞拼好的 HTML 字符串
【交付】
  1. 给我一段真实的返回示例(字段名和值的类型都写清),并且这段示例必须是合法 JSON——我会贴进校验器验
  2. 我打开页面能在网络面板里看到这个请求,返回内容和示例一致
  3. 指出前端读取每个字段的代码位置
【提醒】生成后自己先解析一遍再交给我;字段名不确定就问我,不要自己发明

「必须是合法 JSON,我会贴进校验器验」这句话直接堵住最常见的糊弄——AI 交来一段单引号或带尾逗号的「JSON」。

它说「做好了」,你怎么自己验

这是本站的重头戏。AI 最会的不是写代码,是说「已完成」。这一条,它通常最多做到「运行时」这层:真的跑起来了,能在本机看到结果。

要亲眼看到这些,才算数

  • 把 AI 生成的 JSON 原样复制,贴进在线校验器(搜 json validator):合法一定通过,非法一定报错。
  • 浏览器按 F12 → 控制台,输入 JSON.parse('{"a":1}') 回车能通过;改成 {"a":1,} 再回车,看它报错——这就是机器的判断。
  • 数一遍硬规矩:字段名都是双引号、没有尾逗号、花括号和方括号都配对。
  • 对真实接口:把返回内容复制出来贴校验器,同时核对字段名和值的类型跟你预期一致——格式合法不等于字段对。

它常这么糊弄你

  • 「JSON 已生成」——但用了单引号或中文引号、多了尾逗号,程序一解析就崩。必须贴进校验器或执行一次解析。
  • 把 JSON 和 JavaScript 对象混为一谈:JSON 字段名必须双引号,JS 对象裸写也行。报错时先查是不是这个。
  • 返回体里嵌了一段拼好的 HTML 字符串,声称是「结构化数据」——数据和展示混在一起,后面想改样式要整个重做。
  • 只说「格式合法」不说字段对不对:校验器只能证明机器能读,值对不对是另一回事。

JSON 能不能被机器读,验到「运行时」就够:贴校验器或执行一次解析,一票否决。但「字段名和值对不对」没有机器替你判,得对着你的预期人工核对。

考考你 选一个你觉得对的

AI 说「数据接口返回的是标准 JSON」。你怎么最快确认它真的合法?