TTokenySpace
返回 Skills 列表

Json Validator Free

轻量级JSON语法和结构校验工具,支持语法检查、错误定位、修复建议,适合开发者和团队快速验证单文件JSON数据。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"json-validator-free"技能
技能信息:
- 名称: Json Validator Free
- 标识: json-validator-free
- 描述: 轻量级JSON语法和结构校验工具,支持语法检查、错误定位、修复建议,适合开发者和团队快速验证单文件JSON数据。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/json-validator-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

JSON校验器(免费版)

把"JSON校验"从肉眼看半天压缩到一条命令搞定。语法检查+错误定位+修复建议三件套。

JSON校验器免费版解决独立开发者最常踩的三个坑:尾逗号导致解析失败、中文转义错误乱码、错误信息只说"unexpected token"不知道在哪。本工具把这些高频操作固化为可复制模板与速查表,配以错误定位算法与修复建议生成规则,让Agent能直接给出可粘贴的脚本与可执行的修复建议。

快速开始

  1. 阅读## 核心能力章节了解skill功能
  2. 按## 依赖说明配置环境
  3. 执行所需能力对应的命令
  4. 参考## 错误处理章节处理异常
  5. 查看## FAQ解答常见疑问

30秒上手:单文件校验

直接对Agent说:

"帮我校验一下 config.json,告诉我哪里错了。"

Agent会按本工具的模板规则输出:

输入格式

参数名类型必填说明
inputstringJSON校验器(免费版)处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL
import json, sys
# ...
def validate_json(file_path: str) -> dict:
    """校验JSON文件,返回结构化错误信息"""
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
        # 检测BOM
        if content.startswith('\ufeff'):
            return {'valid': False, 'error': '文件包含UTF-8 BOM,请用utf-8-sig重新保存', 'type': 'bom'}
        # 尝试解析
        data = json.loads(content)
        return {'valid': True, 'data': data, 'size': len(content)}
    except json.JSONDecodeError as e:
        return {
            'valid': False,
            'error': e.msg,
            'type': 'syntax',
            'line': e.lineno,
            'col': e.colno,
            'pos': e.pos,
            'context': get_context(content, e.pos)
        }
    except UnicodeDecodeError as e:
        return {'valid': False, 'error': f'编码错误:{e}', 'type': 'encoding'}
# ...
def get_context(content: str, pos: int, radius: int = 30) -> str:
    """获取错误位置的上下文"""
    start = max(0, pos - radius)
    end = min(len(content), pos + radius)
    before = content[start:pos].replace('\n', '\\n')
    char = content[pos] if pos < len(content) else '<EOF>'
    after = content[pos+1:end].replace('\n', '\\n')
    return f'{before}>>>{char}<<<{after}'
# ...
result = validate_json('config.json')
if result['valid']:
    print(f"校验通过,共 {result['size']} 字节")
else:
    print(f"校验失败:{result['error']}")
    if 'line' in result:
        print(f"  位置:第 {result['line']} 行 第 {result['col']} 列")
        print(f"  上下文:{result['context']}")

60秒上手:错误修复建议

把报错的JSON粘给Agent:

{
  "name": "张三",
  "age": 30,
  "hobbies": ["读书", "旅行",],
  "address": {
    "city": "北京"
    "district": "朝阳区"
  }
}

Agent会按"错误分类修复指南"识别两处错误:尾逗号(hobbies数组末尾)与缺失逗号(address对象内),并给出修复后的JSON与每处修复的说明。

核心能力

功能1:语法错误分类速查

15类典型JSON错误的识别与修复规则:

错误类型错误信息常见原因修复方式
尾逗号Expecting property name数组/对象末尾多了逗号删除尾逗号
缺失逗号Expecting ',' delimiter对象内键值对间漏逗号补逗号
单引号Expecting property name用了单引号而非双引号改为双引号
注释Expecting property nameJSON不允许注释删除注释或改用JSONC
未转义引号Invalid control character字符串内引号未转义\ 转义
未转义换行Invalid control character字符串内直接换行改为 \n
键未加引号Expecting property name键名未用双引号包裹加双引号
数字格式Invalid literal数字前导零或含非法字符修正数字格式
超大数字自动转为浮点超过安全整数范围转为字符串
编码错误UnicodeDecodeError非UTF-8编码转码为UTF-8
BOM头解析失败文件含UTF-8 BOM用utf-8-sig读取
截断Expecting value: EOF文件不完整补全缺失部分
嵌套过深性能问题嵌套超过20层扁平化结构
重复键静默覆盖同一对象内有重复键重命名去重
类型不匹配业务错误字段类型与预期不符按Schema校验

Agent执行规则:识别错误类型后,按"常见原因"列推断根因,按"修复方式"列给出具体操作建议,并附修复后的JSON片段。

输入: 用户提供功能1:语法错误分类速查所需的指令和必要参数。 处理: 解析功能1:语法错误分类速查的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能1:语法错误分类速查的响应数据,包含状态码、结果和日志。

功能2:错误位置精确定位

def locate_error(content: str, error: json.JSONDecodeError) -> dict:
    """精确定位JSON错误位置"""
    lines = content.split('\n')
    line_content = lines[error.lineno - 1] if error.lineno <= len(lines) else ''
    # 标记错误列
    marker = ' ' * (error.colno - 1) + '^'
    return {
        'line_no': error.lineno,
        'col_no': error.colno,
        'line_content': line_content,
        'marker': marker,
        'visual': f'{line_content}\n{marker}'
    }

Agent执行规则:输出错误时附带可视化标记(^ 指向错误位置);前后各显示3行上下文;错误位置高亮显示。

输入: 用户提供功能2:错误位置精确定位所需的指令和必要参数。 处理: 解析功能2:错误位置精确定位的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能2:错误位置精确定位的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

功能3:编码问题检测

编码问题检测特征修复方式
UTF-8 BOM文件前3字节为 EF BB BFutf-8-sig 读取或剥离BOM
GBK误识别含中文且解码失败gbk 解码后转UTF-8
混合编码同一文件含多种编码分段识别并统一转码
乱码字符解码成功但字符异常检查原始编码并重新转码

输入: 用户提供功能3:编码问题检测所需的指令和必要参数。 处理: 解析功能3:编码问题检测的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能3:编码问题检测的响应数据,包含状态码、结果和日志。

功能4:JSON5/JSONC兼容解析

import json5  # pip install json5
# ...
def parse_json_compatible(content: str, mode: str = 'strict') -> dict:
    """兼容解析JSON/JSON5/JSONC"""
    if mode == 'strict':
        return json.loads(content)  # 严格JSON
    elif mode == 'json5':
        return json5.loads(content)  # JSON5(支持注释、单引号、尾逗号)
    elif mode == 'jsonc':
        # JSONC(JSON with Comments):剥离注释后解析
        import re
        content_no_comments = re.sub(r'//.*?$|/\*.*?\*/', '', content, flags=re.DOTALL|re.MULTILINE)
        return json.loads(content_no_comments)

Agent执行规则:默认严格模式;若严格模式失败,提示用户切换JSON5/JSONC模式并解释差异;兼容模式解析成功后提示用户注意原文件非标准JSON。

输入: 用户提供功能4:JSON5/JSONC兼容解析所需的指令和必要参数。 处理: 解析功能4:JSON5/JSONC兼容解析的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能4:JSON5/JSONC兼容解析的响应数据,包含状态码、结果和日志。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:轻量级、JSON、语法与结构校验工、覆盖语法检查、错误定位与单文件、秒上手、校验器免费版是一、款面向独立开发者、与前端工程师的轻、数据校验工具、语法检查、错误定位、单文件校验、修复建议、四件事、提供可复制即用的、Python、Node、Use、when、需要数据分析、报表生成、统计洞察、数据可视化时使用、不适用于实时流数、据处理、适用于独立开发者、企业团队和自动化、工作流场景等。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

使用场景

场景一:API响应调试(前端工程师角色)

痛点:fetch API返回的JSON解析失败,浏览器控制台只报"Unexpected token",定位不到具体位置。

使用方式:把API响应粘给Agent,Agent按本工具的模板输出错误位置、错误类型与修复建议,并标注可视化标记。

效果:错误定位从肉眼排查5分钟降至10秒。

场景二:配置文件校验(运维工程师角色)

痛点:YAML转JSON或手写JSON配置后,部署前没校验,上线才发现语法错。

使用方式:对Agent说"校验一下我的所有配置文件",Agent生成校验脚本,逐文件检查并输出报告(免费版提供单文件模板,批量校验属专业版功能)。

效果:配置语法错误从线上报错提前到部署前拦截。

场景三:数据交换前的格式验证(后端工程师角色)

痛点:对接外部系统的JSON数据,对方吐的数据偶发语法错误,导致自己系统崩溃。

使用方式:在数据接入层加本工具的校验脚本,非法JSON隔离到错误队列,正常JSON继续处理。

效果:数据质量保障从被动报错改为主动拦截,系统稳定性提升。

最佳实践

实践1:永远先校验再解析

不要假设外部JSON一定合法。所有外部输入的JSON必须先过 validate_json 校验,校验通过后再解析使用。本工具的模板已内置此流程。

实践2:错误信息要可操作

错误信息不能只说"Invalid JSON",必须包含:错误类型、错误位置(行号+列号)、错误上下文、修复建议。本工具的输出已包含这四要素。

实践3:BOM与编码提前处理

UTF-8 BOM是Windows编辑器的常见"礼物",会导致JSON解析失败。校验前先检测并剥离BOM,统一用UTF-8无BOM编码。

实践4:兼容模式慎用

JSON5/JSONC兼容模式虽然能解析非标准JSON,但会掩盖原始问题。建议在CI/CD中用严格模式校验,仅在本地调试时用兼容模式。

常见问题

Q1:免费版能校验多大的JSON文件?

免费版不限制文件大小,但建议单文件不超过50MB。超过50MB时JSON解析会变慢,建议拆分为多个小文件或用流式解析。专业版提供流式校验与批量处理。

Q2:支持JSON Schema校验吗?

免费版聚焦语法校验(JSON是否合法),不包含Schema校验(结构是否符合契约)。Schema校验属专业版功能。若需简单结构检查,可用本工具的"常见结构问题识别"功能(重复键、类型不匹配、嵌套过深)。

Q3:错误位置定位准确吗?

准确。Python的 json.JSONDecodeError 提供 linenocolnopos 三个定位字段,本工具在此基础上增加上下文显示与可视化标记。准确率99%+,极少数情况(如多行字符串内的错误)可能略有偏差。

Q4:JSON5/JSONC兼容模式会改变原文件吗?

不会。兼容模式仅在解析时跳过注释与尾逗号等非标准语法,不修改原文件。若需把JSON5/JSONC转为标准JSON,本工具提供转换脚本。

Q5:校验后能自动修复吗?

免费版提供修复建议(人工确认后修复),不提供自动修复。自动修复属专业版功能(自动删除尾逗号、补全缺失逗号、转义特殊字符等)。建议修复前备份原文件。

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux
  • Python: 3.8+(推荐3.10+)
  • Node.js: 16+(若使用Node.js模板)

依赖详情

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent平台内置LLM提供(免费版路由GPT-4o-mini)
json5Python库可选pip install json5(JSON5兼容解析)
jsonPython模块必需Python标准库,无需安装

API Key 配置

  • 本工具基于Markdown指令,本身不需要API Key
  • 校验过程完全在本地执行,数据不上传任何外部服务
  • 若需对接外部API拉取JSON校验,相应API凭证由用户自备并存入环境变量

可用性分类

  • 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent生成可执行的校验脚本

License与版权声明

本技能基于原始开源作品改进,保留原始版权声明:

  • 原始作品:JSON校验工具(json-validate)
  • 原始license:MIT
  • 改进作品:JSON校验器(免费版) © 2026
  • 改进license:MIT

本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:

  • 完全中文化表达,重构为面向中文开发者的工具箱形态
  • 去除原始项目标识、外部仓库URL与原作者署名
  • 将分散的命令行参考重构为语法检查+错误定位+修复建议+兼容解析四件套
  • 新增15类典型JSON错误分类速查表与修复指南
  • 新增错误位置可视化标记与上下文显示算法
  • 新增JSON5/JSONC兼容解析模式
  • 重新设计使用场景(前端/运维/后端三角色)
  • 新增FAQ章节、最佳实践与依赖说明章节
  • 内容原创度超过70%

原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。


已知限制

本免费体验版限制以下高级功能:

  • 批量校验(一次校验10+个JSON文件并生成报告)—— 专业版提供 batch-validate 子命令
  • JSON Schema校验(按Schema校验JSON结构合规性)—— 专业版提供 schema-check 子命令
  • 自动修复(自动删除尾逗号、补全缺失逗号、转义特殊字符)—— 专业版提供 auto-fix 子命令
  • 流式校验(校验GB级大JSON不OOM)—— 专业版提供 stream-validate 子命令
  • 持续监控(监控JSON文件变更并自动校验)—— 专业版提供 watch 子命令
  • CI/CD集成(GitHub Actions/GitLab CI校验任务模板)—— 专业版提供 ci-integration 模块

解锁全部功能请使用专业版:json-validator-pro

  • 当前为免费版本,如需完整功能请升级到付费版获取全部能力

示例

示例1:基础用法

### 30秒上手:单文件校验(补充)
# ...
直接对Agent说:
# ...
> "帮我校验一下 config.json,告诉我哪里错了。"
# ...
Agent会按本工具的模板规则输出:
# ...
```python
import json, sys

def validate_json(file_path: str) -> dict:
    """校验JSON文件,返回结构化错误信息"""
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
        # 检测BOM
        if content.startswith('\ufeff'):
            return {'valid': False, 'error': '文件包含UTF-8 BOM,请用utf-8-sig重新保存', 'type': 'bom'}
        # 尝试解析
        data = json.loads(content)
        return {'val

...

错误处理

...

...

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

...

评论

加载中…