[智能体-5]:JSON 超全详解(语法 + 结构 + 实战 + 易错点)

发布时间:2026/5/22 1:10:20

[智能体-5]:JSON 超全详解(语法 + 结构 + 实战 + 易错点) JSONJavaScript Object Notation轻量级、纯文本、跨语言的数据交换格式RESTful API 与大模型接口的标准数据格式RFC 8259 标准。一、核心定位与特点1. 是什么源于 JS但独立于编程语言所有编程语言都能解析本质键值对 数组的纯文本自然语言描述数据结构与内容易读易写,后缀.json编码强制UTF-82. 核心特点✅ 轻量比 XML 更短、更快解析✅ 易读人类与机器都能看懂的文本格式✅ 跨语言Java/Python/Go/JS 通用✅ 无注释标准 JSON不支持单行 // 或多行 /* */ 注释✅ 无状态纯数据数据本身是静态的不包含逻辑二、六大基础语法必背1. 两种顶级结构JSON 文本只能有一个根对象 Object{}包裹无序键值对集合字典数组 Array[]包裹有序值列表数组/列表旧标准要求根必须是对象 / 数组新标准RFC 8259允许根为字符串 / 数字 / 布尔 /null2. 键Key规则最易错 》 数据结构的filed name必须用双引号包裹name单引号name、无引号name→非法键名唯一建议UTF-8 字符中文 / 符号均可3.值Value的 6 种合法类型RFC 8259》数据结构的数值表格类型说明合法示例非法示例字符串 String双引号包裹 Unicode 字符张三、hello\nworld张三、hello数字 Number十进制整数 / 浮点数 / 科学计数法123、-3.14、1e50x10、NaN、Infinity布尔 Boolean小写 true/falsetrue、falseTrue、FALSE、1空值 Null小写 nullnullNULL、undefined对象 Object字典{}包裹键值对{a:1}{a:1}数组 Array[]包裹值列表[1,a][1,a]4. 分隔符规则键值分隔冒号:无空格也可建议加空格但肯定不是“”号元素分隔逗号,❌禁止尾随逗号最后一个键值对 / 元素后不能加逗号如{a:1,}非法5. 空白符空格 / 制表符 / 换行可自由添加解析时自动忽略仅为可读性示例紧凑写法{name:张三}与格式化写法等价6. 字符串转义规则必须用反斜杠\转义特殊字符\→ 双引号\\→ 反斜杠\n→ 换行\t→ 制表符\r→ 回车\b→ 退格\f→ 换页\uXXXX→ Unicode 字符如\u4e2d代表 “中”三、完整语法结构示例由浅入深1. 最简单 JSON根为值jsonHello JSON // 字符串根 123 // 数字根 true // 布尔根 null // null根2. 对象Object键值对集合json{ name: 张三, age: 30, isStudent: false, score: 95.5, address: null }3. 数组Array用 [ ] 表示有序列表不一定是同类型数据json[苹果, 香蕉, 橙子, 100, true, null]4. 嵌套结构最常用API 90% 用这种用{}嵌套下一层的数据对象嵌套对象 数组模拟用户信息json{ id: 1001, username: zhangsan, profile: { nickname: 张三, avatar: https://xxx.com/avatar.jpg, gender: male }, hobbies: [游泳, 篮球, 编程], scores: [ {subject: 数学, score: 90}, {subject: 语文, score: 95} ], isVip: true, createTime: 2026-05-21T18:30:00Z }四、JSON 与 RESTful/OpenAI API 的关系1. RESTful API 标准格式请求体POST/PUT/PATCH必须是 JSON响应体固定 JSON 结构json// 标准 API 响应 { code: 200, msg: 成功, data: {} // 核心数据 }2. OpenAI 对话接口标准 JSONjson// 请求示例 { model: gpt-3.5-turbo, messages: [ {role: user, content: 什么是JSON} ], temperature: 0.7 }五、常见错误写法避坑❌ 错误 1键用单引号 / 无引号json{name: 张三} // 无引号非法 {name: 张三} // 单引号非法❌ 错误 2字符串用单引号json{name: 张三} // 单引号字符串非法❌ 错误 3尾随逗号json{name: 张三,} // 最后加逗号非法 [1, 2, 3,] // 数组最后加逗号非法❌ 错误 4包含注释json// 单行注释非法 { name: 张三 /* 多行注释非法 */ }❌ 错误 5使用 undefined/NaN/Infinityjson{status: undefined} // 非法 {count: NaN} // 非法六、JSON 解析工具开发必备在线格式化 / 校验JSON.cn、JSONFormatterVS Code 插件JSON Viewer、Prettier自动格式化命令行jqLinux/Mac 解析 JSON 神器七、极简总结JSON 双引号键 6 种值类型 冒号分隔 逗号分隔元素 无注释 无尾随逗号。它是 RESTful API、大模型接口、前后端数据传输的通用语言必须 100% 掌握。

相关新闻