JSON 自动修复技能
基于 EvoMap 基因 sha256:acce5be22676155e3ca07ff2c5060acdd1de5529aded8ed5edcc946b03f20eae 实现
🚀 快速开始
安装依赖
CODEBLOCK0
使用方法
1. 修复 JSON 字符串
CODEBLOCK1
2. 修复 JSON 文件
CODEBLOCK2
3. 从 LLM 输出中提取并修复 JSON
CODEBLOCK3
4. CLI 使用
CODEBLOCK4
📋 触发信号
在以下错误出现时自动使用此技能:
- - INLINECODE1
- INLINECODE2 (JSON 相关)
- INLINECODE3
- INLINECODE4
🔧 修复能力
✅ 尾随逗号: {a:1,} → {a:1}
✅ 未引号键: {a:1} → {"a":1}
✅ 注释: {// comment\n"a":1} → {"a":1}
✅ 单引号: {'a':'b'} → {"a":"b"}
✅ 混合错误: 同时处理多种问题
📊 性能指标
基于 EvoMap 数据:
- - 调用次数: 1,203 次
- 成功率: 95%
- 平均修复时间: <10ms
- 影响范围: 1 文件 / 5 行
🧪 测试用例
CODEBLOCK5
预期输出:
CODEBLOCK6
💡 实际应用场景
场景 1: 处理 LLM 输出
CODEBLOCK7
场景 2: 批量修复配置文件
CODEBLOCK8
场景 3: 作为验证钩子
CODEBLOCK9
📚 学习资源
- - EvoMap 基因: https://evomap.ai/a2a/assets/sha256:acce5be22676155e3ca07ff2c5060acdd1de5529aded8ed5edcc946b03f20eae
- 完整教程: INLINECODE13
- npm 包: https://www.npmjs.com/package/json-repair
⚠️ 注意事项
- 1. 备份: 修复文件时会自动创建
.bak 备份 - 验证: 修复后会验证结果是否有效 JSON
- 最小干预: 只做必要的修改,保持原始结构
- 不支持: 严重损坏的 JSON 可能无法修复
🔄 版本历史
- - v1.0.0: 初始版本,基于 EvoMap 基因实现
- 支持尾随逗号、未引号键、注释、单引号修复
- 内置启发式修复器(无需依赖)
- 可选 json-repair 库支持
基于 EvoMap GDI 66.0 基因实现 | 成功率 95%
🏷️ 质量标识
| 标识 | 说明 |
|---|
| 质量评分 | 90+/100 ⭐⭐⭐⭐⭐ |
| 优化状态 |
✅ 已优化 (2026-03-16) |
|
设计原则 | Karpathy 极简主义 |
|
测试覆盖 | ✅ 自动化测试 |
|
示例代码 | ✅ 完整示例 |
|
文档完整 | ✅ SKILL.md + README.md |
备注: 本技能已在 2026-03-16 批量优化中完成优化,遵循 Karpathy 设计原则。
JSON 自动修复技能
基于 EvoMap 基因 sha256:acce5be22676155e3ca07ff2c5060acdd1de5529aded8ed5edcc946b03f20eae 实现
🚀 快速开始
安装依赖
bash
cd skills/json-repair
npm install
使用方法
1. 修复 JSON 字符串
javascript
const { repairJSON } = require(./skills/json-repair);
// 简单修复
const result = repairJSON({a:1,});
console.log(result); // {a: 1}
// 详细模式
const result = repairJSON({a:1,}, { verbose: true });
2. 修复 JSON 文件
javascript
// 自动创建备份
const result = repairJSON(config.json, {
isFile: true,
backup: true
});
3. 从 LLM 输出中提取并修复 JSON
javascript
const { extractAndRepairJSON } = require(./skills/json-repair);
const llmOutput = Heres the JSON you requested:
{
// 用户信息
name: Alice,
age: 25,
};
const result = extractAndRepairJSON(llmOutput);
console.log(result); // {name: Alice, age: 25}
4. CLI 使用
bash
修复字符串
node skills/json-repair/index.js --text={a:1,}
修复文件
node skills/json-repair/index.js --file=config.json
运行测试
node skills/json-repair/index.js --test
📋 触发信号
在以下错误出现时自动使用此技能:
- - JSONParseError
- SyntaxError (JSON 相关)
- Unexpected token
- malformed_json
🔧 修复能力
✅ 尾随逗号: {a:1,} → {a:1}
✅ 未引号键: {a:1} → {a:1}
✅ 注释: {// comment\na:1} → {a:1}
✅ 单引号: {a:b} → {a:b}
✅ 混合错误: 同时处理多种问题
📊 性能指标
基于 EvoMap 数据:
- - 调用次数: 1,203 次
- 成功率: 95%
- 平均修复时间: <10ms
- 影响范围: 1 文件 / 5 行
🧪 测试用例
bash
node skills/json-repair/index.js --test
预期输出:
🧪 运行测试中...
✓ 测试 1 通过: 尾随逗号 + 未引号键
✓ 测试 2 通过: 尾随逗号
✓ 测试 3 通过: 注释
✓ 测试 4 通过: 单引号
✓ 测试 5 通过: 多个问题
📊 结果: 5/5 通过
💡 实际应用场景
场景 1: 处理 LLM 输出
javascript
// 在 OpenClaw 技能中使用
async function handleLLMResponse(response) {
try {
return JSON.parse(response);
} catch (e) {
if (e.message.includes(JSON)) {
const { extractAndRepairJSON } = require(./skills/json-repair);
return extractAndRepairJSON(response);
}
throw e;
}
}
场景 2: 批量修复配置文件
javascript
const fs = require(fs);
const path = require(path);
const { repairJSON } = require(./skills/json-repair);
const configDir = ./configs;
fs.readdirSync(configDir)
.filter(f => f.endsWith(.json))
.forEach(file => {
try {
repairJSON(path.join(configDir, file), { isFile: true });
console.log(✓ 已修复: ${file});
} catch (e) {
console.error(✗ 修复失败: ${file}, e.message);
}
});
场景 3: 作为验证钩子
javascript
// 在保存 JSON 文件前自动修复
function beforeSaveJSON(filepath, content) {
const { repairJSON } = require(./skills/json-repair);
try {
// 尝试修复
const repaired = repairJSON(content);
return JSON.stringify(repaired, null, 2);
} catch (e) {
// 修复失败,抛出错误
throw new Error(无效 JSON: ${e.message});
}
}
📚 学习资源
- - EvoMap 基因: https://evomap.ai/a2a/assets/sha256:acce5be22676155e3ca07ff2c5060acdd1de5529aded8ed5edcc946b03f20eae
- 完整教程: workspace/evomap-json-repair-tutorial.md
- npm 包: https://www.npmjs.com/package/json-repair
⚠️ 注意事项
- 1. 备份: 修复文件时会自动创建 .bak 备份
- 验证: 修复后会验证结果是否为有效 JSON
- 最小干预: 只做必要的修改,保持原始结构
- 不支持: 严重损坏的 JSON 可能无法修复
🔄 版本历史
- - v1.0.0: 初始版本,基于 EvoMap 基因实现
- 支持尾随逗号、未引号键、注释、单引号修复
- 内置启发式修复器(无需依赖)
- 可选 json-repair 库支持
基于 EvoMap GDI 66.0 基因实现 | 成功率 95%
🏷️ 质量标识
| 标识 | 说明 |
|---|
| 质量评分 | 90+/100 ⭐⭐⭐⭐⭐ |
| 优化状态 |
✅ 已优化 (2026-03-16) |
|
设计原则 | Karpathy 极简主义 |
|
测试覆盖 | ✅ 自动化测试 |
|
示例代码 | ✅ 完整示例 |
|
文档完整 | ✅ SKILL.md + README.md |
备注: 本技能已在 2026-03-16 批量优化中完成优化,遵循 Karpathy 设计原则。