JSON验证器Skill json-validator

JSON验证器是一款用于验证、格式化、修复和分析JSON数据的工具。它能够检查JSON语法错误、美化格式、自动修复常见问题(如尾随逗号、单引号等),并支持JSON与YAML、XML等其他格式的相互转换。适用于API开发、配置文件处理、数据交换等场景,是开发者和数据分析师处理JSON数据的得力助手。 关键词:JSON验证,JSON格式化,JSON修复,JSON转YAML,JSON转XML,API数据验证,配置文件处理,数据格式转换,开发工具,数据清洗

后端开发 0 次安装 0 次浏览 更新于 3/1/2026

名称:json-validator 描述:验证、格式化及修复JSON数据。当您需要处理需要验证或格式化的JSON文件、API响应或配置文件时,请使用此技能。

JSON验证器

验证、格式化及修复JSON数据,并提供有用的错误信息和修复建议。

何时使用此技能

当您需要时使用此技能:

  • 验证JSON语法和结构
  • 格式化/美化JSON数据
  • 修复常见的JSON错误
  • 在JSON与其他格式之间进行转换
  • 分析JSON结构

验证

验证JSON时:

  1. 检查语法:识别带行号的语法错误
  2. 提供上下文:显示问题部分
  3. 建议修复:提供具体的修正建议
  4. 解释问题:描述错误内容及原因

需要检查的常见JSON错误

  • 缺失或多余的逗号
  • 未闭合的括号/大括号
  • 未加引号的键名
  • 尾随逗号(在严格JSON中无效)
  • 使用单引号而非双引号
  • 注释(JSON中不允许)
  • Undefined/NaN/Infinity值

验证输出示例

❌ JSON验证失败

第5行:最后一个对象属性后的尾随逗号
  "name": "example",
  "value": 123,  ← 删除此逗号
}

✅ 建议修复:
{
  "name": "example",
  "value": 123
}

格式化

格式化JSON时:

  1. 使用2空格缩进(标准)
  2. 按键名字母顺序排序(可选,需询问用户)
  3. 删除不必要的空白字符
  4. 确保结构一致

示例

输入(压缩格式):

{"name":"test","items":[1,2,3],"active":true}

输出(格式化后):

{
  "name": "test",
  "items": [
    1,
    2,
    3
  ],
  "active": true
}

修复常见问题

尾随逗号

// ❌ 无效
{
  "key": "value",
}

// ✅ 已修复
{
  "key": "value"
}

单引号

// ❌ 无效
{'key': 'value'}

// ✅ 已修复
{"key": "value"}

未加引号的键名

// ❌ 无效
{key: "value"}

// ✅ 已修复
{"key": "value"}

注释

// ❌ 无效
{
  // 这是一个注释
  "key": "value"
}

// ✅ 已修复
{
  "key": "value"
}

转换

在JSON与其他格式之间转换时:

从JSON转换为其他格式

  • YAML:保留结构,使用适当的缩进
  • TOML:适当处理嵌套对象
  • CSV:必要时扁平化结构,处理数组
  • XML:选择合适的标签名

从其他格式转换为JSON

  • 确保正确转义
  • 验证结果
  • 保持数据类型(字符串、数字、布尔值、null)

分析

分析JSON结构时:

  1. 报告模式

    • 顶层类型(对象/数组)
    • 键名和类型
    • 嵌套深度
    • 数组大小
  2. 识别模式

    • 重复结构
    • 可选字段
    • 使用的数据类型
  3. 建议改进

    • 命名不一致
    • 深层嵌套问题
    • 大型数组优化

分析示例

JSON结构分析:

类型:对象
键数:3(name、items、metadata)

模式:
{
  "name": 字符串,
  "items": 数字数组[3],
  "metadata": {
    "created": 字符串,
    "updated": 字符串
  }
}

深度:2层
总大小:约150字节

最佳实践

  1. 格式化前始终验证 - 不要格式化无效的JSON
  2. 显示清晰的错误信息 - 包含行号和上下文
  3. 保留数据类型 - 不要不必要地将数字转换为字符串
  4. 处理边缘情况 - 空对象、null值、Unicode字符
  5. 重大更改前询问 - 例如,排序键、删除注释

示例

示例1:验证并修复

用户请求: “验证此JSON并修复任何错误”

响应:

发现2个问题:

1. 第3行:"name"后的尾随逗号
2. 第5行:使用单引号而非双引号

以下是修正后的JSON:
{
  "name": "example",
  "data": {
    "value": 42
  }
}

示例2:格式化

用户请求: “漂亮地格式化此JSON”

响应:

{
  "users": [
    {
      "id": 1,
      "name": "Alice"
    },
    {
      "id": 2,
      "name": "Bob"
    }
  ],
  "total": 2
}

示例3:转换为YAML

用户请求: “将此JSON转换为YAML”

响应:

users:
  - id: 1
    name: Alice
  - id: 2
    name: Bob
total: 2