今日稿件质量降级,仍可阅读。部分内容可能比平时简略。
AI 基础2026 年 10 月 24 日约 12 分钟

第28天基础课《结构化输出》

人和人交流时,可以说「把资料整理成表格」;人和程序交流时,也要先约定结果的格式。结构化输出,就是让回答按照固定格式排列,方便程序自动读取和继续处理。今天学习最常见、最适合入门使用的 JSON 格式。JSON 是一种用文本表示数据的格式,全称是 JavaScript Object Notation。虽然名字里有 JavaScript,但许多语言都能使用它。

为什么要让结果便于程序读取

自然语言适合阅读,却不一定适合程序处理。例如,你写「共有 3 件商品,价格分别是 20、30、40 元」,程序很难稳定判断哪个数字对应哪件商品。如果改成固定结构:商品数量写成 3,每件商品分别包含名称和价格,程序就能逐项读取。这里的字段,就是数据块的名称;值,是字段里保存的具体内容。结构化输出的目标不是让文字更复杂,而是让信息的位置明确、类型一致,减少人工整理和理解偏差。

认识 JSON 输出

JSON 数据通常由对象、数组、字符串、数字、布尔值和空值组成。最外层常用一个对象,也就是用大括号包住的一组字段。字段名和字段值之间用英文冒号分隔;多个字段之间用英文逗号分隔。字符串要用英文双引号包住,数字和 true、false 不需要。数组用方括号表示,可以按顺序保存多个同类项目,例如商品列表。null 表示这里暂时没有值。JSON 本身不包含注释,也不能在末尾多写逗号。实际向程序输出时,还要注意只输出 JSON,不要夹带解释文字,这样程序更容易直接解析。

把信息整理成 JSON

假设要记录一条学习记录,可以写成这样的 JSON:{"课程":"结构化输出","完成":true,"学习天数":28,"难度":null,"标签":["基础课","数据格式"]}。其中「完成」是布尔字段,true 表示是,false 表示否;「学习天数」是数字;「标签」是数组;「难度」暂时没有数据,所以写成 null。字段名要保持统一,例如不要一会儿写「天数」,一会儿写「学习天数」。数组中的元素也要类型一致,最好都放标签,不要把数字、句子和对象随意混在一起。

让程序稳定读取

为了便于程序读取,第一步是确定需要哪些字段;第二步是给每个字段规定类型;第三步是固定名称和层级;第四步是检查引号、逗号、括号是否配对。比如每条商品都固定包含 id、name 和 price,就比有时给名称、有时只给描述更容易批量处理。若接口要求返回 JSON,就让模型只返回合法 JSON,不要在前后加入「以下是结果」等说明。遇到较长内容时,也要保持字符串完整,并用反斜杠处理字符串内部的英文双引号。校验失败时,先检查最后是否多逗号、字符串是否有引号、括号是否成对。

随堂小测

停一下,确认你真的懂了

每题只能选择一次,不计分,也不会保存结果。

第 1 题

下面哪一项是合法的 JSON 对象?

第 2 题

如果一个字段暂时没有值,最适合写成什么?

第 3 题

为什么向程序输出时最好只返回 JSON,不附加说明文字?