SKILL.md
AI 翻译,以原文为准。
---
name: json-formatter
description: 校验并格式化 JSON 数据。当用户粘贴的 JSON 混乱、压缩成一行、缩进错乱,或需要检查语法错误、定位出错位置时使用。
---
# JSON 格式化技能
## 何时使用
当用户提出以下需求时应用本技能:
- “帮我格式化这段 JSON”
- “这个 JSON 报错了,帮我看看哪里错”
- “把压缩的 JSON 展开”
- “检查 JSON 语法是否正确”
## 处理步骤
### 1. 校验语法
- 检查括号 `{}` `[]` 是否成对闭合
- 检查键名是否用双引号包裹(JSON 不允许单引号)
- 检查是否有多余逗号(对象/数组末尾逗号非法)
- 检查字符串是否含未转义的特殊字符(`"` `\` 换行等)
### 2. 报错定位
若语法有误:
- 指出出错的行号和列号
- 说明错误类型(如“第 5 行末尾多余逗号”)
- 给出修正建议
### 3. 格式化输出
- 统一使用 2 空格缩进(若用户指定 4 空格或 Tab,按用户要求)
- 每个键值对单独一行
- 冒号后保留一个空格
- 数组元素换行缩进
### 4. 输出
- 语法正确:直接输出格式化后的 JSON,放在代码块中
- 语法错误:先说明错误位置和原因,再给出修正后的版本
## 边界情况
- JSON 为空或只有 `{}` `[]`:原样输出
- 超大 JSON(超过 500 行):输出格式化结果,并提示可分段查看
- 输入不是 JSON(如 JS 对象、YAML):告知用户并询问是否转换
- 含中文或特殊字符:保留原内容,不做转义或编码转换
## 示例
**输入:**
{"name":"张三","age":25,"skills":["Python","SQL"],"active":true,}
**输出:**
第 1 行末尾有多余逗号,已修正:
```json
{
"name": "张三",
"age": 25,
"skills": [
"Python",
"SQL"
],
"active": true
}
用途与依赖
作者没写,这些是平台读文件后整理的,以文件为准。
使用示例
请求:帮我看看这段 JSON 哪里错了:{"name":"张三","age":25,"active":true,}
预期
指出这是第 1 行末尾有多余逗号(对象最后一个键值对后不允许出现逗号),说明错误类型和修正方式,然后给出修正并格式化的版本:对象每个键值对单独一行、2 空格缩进、冒号后保留一个空格,输出放在 json 代码块中。
- 适用场景
- 用户粘贴的 JSON 被压缩成一行,希望展开并加上缩进
- JSON 报语法错误,需要定位出错的行号和列号并说明原因
- 检查一段 JSON 的语法是否正确
- JSON 缩进错乱,需要统一格式(2 空格、4 空格或 Tab)
- 需要修正多余逗号、单引号键名等常见 JSON 写法问题
- 输入
- 需要校验或格式化的 JSON 文本
- 可选的缩进偏好(2 空格、4 空格或 Tab,默认 2 空格)
- 输出
- 语法检查结论(正确,或错误所在的行号、列号与错误类型及修正建议)
- 格式化后的 JSON,放在代码块中
- 超大 JSON(超过 500 行)时附带的查看提示
- 运行环境
- 未说明
- 依赖
- 无

