SKILL.md
1.8 KB查看排版效果| 1 | ```markdown |
| 2 | --- |
| 3 | name: json-formatter |
| 4 | description: 校验并格式化 JSON 数据。当用户粘贴的 JSON 混乱、压缩成一行、缩进错乱,或需要检查语法错误、定位出错位置时使用。 |
| 5 | --- |
| 6 | |
| 7 | # JSON 格式化技能 |
| 8 | |
| 9 | ## 何时使用 |
| 10 | 当用户提出以下需求时应用本技能: |
| 11 | - “帮我格式化这段 JSON” |
| 12 | - “这个 JSON 报错了,帮我看看哪里错” |
| 13 | - “把压缩的 JSON 展开” |
| 14 | - “检查 JSON 语法是否正确” |
| 15 | |
| 16 | ## 处理步骤 |
| 17 | |
| 18 | ### 1. 校验语法 |
| 19 | - 检查括号 `{}` `[]` 是否成对闭合 |
| 20 | - 检查键名是否用双引号包裹(JSON 不允许单引号) |
| 21 | - 检查是否有多余逗号(对象/数组末尾逗号非法) |
| 22 | - 检查字符串是否含未转义的特殊字符(`"` `\` 换行等) |
| 23 | |
| 24 | ### 2. 报错定位 |
| 25 | 若语法有误: |
| 26 | - 指出出错的行号和列号 |
| 27 | - 说明错误类型(如“第 5 行末尾多余逗号”) |
| 28 | - 给出修正建议 |
| 29 | |
| 30 | ### 3. 格式化输出 |
| 31 | - 统一使用 2 空格缩进(若用户指定 4 空格或 Tab,按用户要求) |
| 32 | - 每个键值对单独一行 |
| 33 | - 冒号后保留一个空格 |
| 34 | - 数组元素换行缩进 |
| 35 | |
| 36 | ### 4. 输出 |
| 37 | - 语法正确:直接输出格式化后的 JSON,放在代码块中 |
| 38 | - 语法错误:先说明错误位置和原因,再给出修正后的版本 |
| 39 | |
| 40 | ## 边界情况 |
| 41 | - JSON 为空或只有 `{}` `[]`:原样输出 |
| 42 | - 超大 JSON(超过 500 行):输出格式化结果,并提示可分段查看 |
| 43 | - 输入不是 JSON(如 JS 对象、YAML):告知用户并询问是否转换 |
| 44 | - 含中文或特殊字符:保留原内容,不做转义或编码转换 |
| 45 | |
| 46 | ## 示例 |
| 47 | |
| 48 | **输入:** |
| 49 | ``` |
| 50 | |
| 51 | {"name":"张三","age":25,"skills":["Python","SQL"],"active":true,} |
| 52 | |
| 53 | ``` |
| 54 | |
| 55 | **输出:** |
| 56 | 第 1 行末尾有多余逗号,已修正: |
| 57 | |
| 58 | ```json |
| 59 | { |
| 60 | "name": "张三", |
| 61 | "age": 25, |
| 62 | "skills": [ |
| 63 | "Python", |
| 64 | "SQL" |
| 65 | ], |
| 66 | "active": true |
| 67 | } |
| 68 | ``` |
| 69 | |
| 70 | ``` |
文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。

