跳到正文

00 JSON 是什么?从一张书包清单开始

用书包清单认识 JSON 的名字和值、六种数据类型和标点规则,为调用 AI API 做准备。

假设你要让一个小机器人帮你整理书包。你说:“放两本书,再带一支铅笔。”

人能听懂这句话。程序之间传递资料时,常常会把它写成一张格式固定的清单。

**JSON 就是这种记录资料的格式。**你可以把它读作“杰森”。这一课不用装软件,也不用记英文全称。

学完后,你会读懂并修改下面这张清单。下一课,我们会用同样的格式给 AI 发任务。

一、先读一张清单

json
{
  "bag": "blue",
  "books": 2,
  "items": ["book", "pencil"],
  "hasWater": true,
  "snack": null,
  "owner": {
    "name": "Alex"
  }
}

先看最简单的一行:"books": 2。

  • books 是名字,也叫“键”(key),意思是“书的数量”。
  • 2 是值(value),告诉机器人有两本书。
  • 中间的冒号 : 把名字和值连起来,可以读成“是”。

所以,这行可以读成:“书的数量是 2。”

外面的一对大括号 { } 把这些资料放在一起。这样的一组资料叫对象。

我们用英文写名字,是为了方便与程序对接。JSON 的文字也可以是中文,不是只能写英文。

二、JSON 能装什么?

像书包有不同的小口袋,JSON 也有不同的资料类型。先看例子,不用背名字。

类型清单中的例子怎么理解
文字(字符串)"blue"蓝色。文字放在双引号里。
数字2两本。数字不用加引号。
是或否(布尔值)true带了水。false 表示没带。
空值null零食这一项暂时没有值。不是数字 0。
列表(数组)["book", "pencil"]按顺序放一本书、一支铅笔。
对象{"name": "Alex"}一张小资料卡,还能放进大清单里。

大括号 { } 装一组“名字和值”,方括号 [ ] 装一列东西。

2 和 "2" 看着像,却不一样:前者是数字,后者是文字。就像两个苹果和纸上写着的“2”,不是同一件东西。

三、标点也有规则

机器人不会像老师一样帮你猜错别字。写 JSON 时,先检查这五件事:

  1. 名字用英文双引号 " 包住,文字值也一样。单引号和中文弯引号都不行。
  2. 名字和值之间用冒号 :。
  3. 相邻的项目之间用逗号 ,,最后一项后面不加逗号。
  4. 大括号和方括号要成对出现。
  5. true、false、null 全部小写,不加引号。JSON 里不能写注释。

换行和缩进是为了让人容易阅读。把它排得整齐,不会改变里面的资料。

下面这段有错误,不能作为 JSON 使用:

text
{
  'books': 2,
  "hasWater": True,
}

它有三处问题:books 用了单引号,True 的开头大写,最后还多了一个逗号。

改好后是这样:

json
{
  "books": 2,
  "hasWater": true
}

四、轮到你改一改

把上面的正确清单复制到记事本,完成两个小任务:

  1. 把书的数量改成 3。
  2. 加一项 items,列表里放 book 和 pencil。

先自己改,再往下核对。你得到的资料应该是这样,空格多少不影响结果:

json
{
  "books": 3,
  "hasWater": true,
  "items": ["book", "pencil"]
}

检查一下:你有没有在 true 后面加上逗号?最后一项后面有没有多余的逗号?

接下来,带着这张清单的读法,学习用 JSON 调用 AI API。