发现 AI 代理的未来

json-repair

收录于 2026年2月24日
智能体与应用工具
开源
大语言模型GoAI代理CLI智能体与应用工具模型与推理框架开发者工具/代码协议/API/集成

一款零依赖的 Go 库,专为自动检测并修复大语言模型(LLM)生成的不规范或损坏的 JSON 数据而设计,支持 API 调用和命令行工具。

项目简介#

json-repair 是一个专门解决 LLM 输出 JSON 格式异常的 Go 语言工具库。在使用大语言模型进行 Function Calling 或文本生成时,模型输出的 JSON 经常存在格式错误,导致标准 JSON 解析器失败。json-repair 能够自动修复这些问题,提高系统鲁棒性。

核心能力#

支持修复的 JSON 问题#

  • 单引号字符串 → 自动转换为双引号
  • 混合引号字符串
  • 未闭合的数组/对象 → 自动补全 ], }
  • 格式错误的字面量(TRUE, FALSE, Null)→ 修复为正确大小写
  • JSON 注释(///* */)→ 自动剔除
  • 字符串中的换行符 \n
  • Markdown 代码块标记(```json)
  • 错误的键值对
  • 字符串中包含链接

技术特性#

  • 零依赖:仅使用 Go 标准库
  • 鲁棒性设计:始终返回字符串结果,不会因错误而 panic
  • 递归防护:最大递归深度限制(1000层),防止栈溢出
  • 死循环检测:通过进度计数器检测无限循环
  • Panic 恢复:使用 defer/recover 捕获异常

安装与使用#

Go 库安装#

go get github.com/RealAlexandreAI/json-repair

命令行工具安装#

brew install realalexandreai/tap-jsonrepair/jsonrepair

API 示例#

package main

import (
    "github.com/RealAlexandreAI/json-repair"
)

func main() {
    brokenJSON := "```json {'employees':['John', 'Anna', ```"
    fixedJSON, _ := jsonrepair.RepairJSON(brokenJSON)
    // 输出: {"employees":["John","Anna"]}
}

核心 API#

  • RepairJSON(src string) (dst string, err error) - 标准修复接口
  • MustRepairJSON(src string) (dst string) - 简化接口,不返回 error
  • JSONMarshal(t any) ([]byte, error) - 增强序列化,保留 HTML 字符不转义

CLI 使用#

jsonrepair -i "{'test': 'value',"
jsonrepair -f broken.json
cat broken.json | jsonrepair

应用场景#

  • LLM 应用后处理:清洗 ChatGPT、Claude 等模型返回的 JSON 数据
  • Agent 工作流:确保多智能体系统中 JSON 消息传递的有效性
  • Function Calling:处理 OpenAI 等平台的函数调用返回数据
  • 数据清洗 ETL:修复存储的损坏 JSON 日志或数据文件

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。