
json-repair 是一个在应用层为 LLMs(大语言模型)生成异常 JSON 提供修复的 Java 库。基于 json-repair 可以简单高效并准确的实现异常 JSON 的修复。
要想使用 json-repair,只需将其作为依赖添加到你的 Java 项目中即可。 Maven 配置如下:
<dependency>
<groupId>io.github.haibiiin</groupId>
<artifactId>json-repair</artifactId>
<version>0.4.0</version>
</dependency>
Gradle 配置如下:
implementation 'io.github.haibiiin:json-repair:0.4.0'
接下来你只需要实例化 JSONRepair 并调用 handle() 方法便可以完成异常 JSON 的修复。
JSONRepair repair = new JSONRepair();
String correctJSON = repair.handle(mistakeJSON);
如果需要从文本字符串中提取出符合 JSON 格式的内容,需要通过 JSONRepairConfig 启用提取功能。
JSONRepairConfig config = new JSONRepairConfig();
config.enableExtractJSON();
JSONRepair repair = new JSONRepair(config);
String correctJSON = repair.handle(mistakeJSON);
你可以通过查看 测试用例数据集 或 测试报告 了解当前 0.4.0 版本 json-repair 支持修补的所有 JSON 异常。
基于当前 0.4.0 版本的功能如下:
你可以通过运行 BenchmarkTests 进行更多场景的性能测试
基于当前 0.4.0 版本的性能测试如下:
--AverageTime --NANOSECONDS --Warmup-5-1-SECONDS
Benchmark (anomalyJSON) Mode Cnt Score Error Units
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "f2":"v2" avgt 5 114767.597 ± 246035.480 ns/op
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "a":[1 avgt 5 42658.921 ± 66863.970 ns/op
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "a":[1,2], "o1":{"f1":"v1"}, avgt 5 410883.872 ± 703643.753 ns/op
BenchmarkTests.testSimpleRepairStrategy "f":"v", "a":[1,2], "o1":{"f1":"v1"} avgt 5 180096.819 ± 535679.217 ns/op
BenchmarkTests.testSimpleRepairStrategy f:v avgt 5 252954.401 ± 908076.158 ns/op
--AverageTime --MILLISECONDS --Warmup-5-1-SECONDS
Benchmark (anomalyJSON) Mode Cnt Score Error Units
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "f2":"v2" avgt 5 0.179 ± 0.256 ms/op
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "a":[1 avgt 5 0.215 ± 0.373 ms/op
BenchmarkTests.testSimpleRepairStrategy {"f":"v", "a":[1,2], "o1":{"f1":"v1"}, avgt 5 0.070 ± 0.152 ms/op
BenchmarkTests.testSimpleRepairStrategy "f":"v", "a":[1,2], "o1":{"f1":"v1"} avgt 5 0.306 ± 0.121 ms/op
BenchmarkTests.testSimpleRepairStrategy f:v avgt 5 0.125 ± 0.243 ms/op
你可以通过查看 报告 了解项目测试覆盖率详情。
将代码克隆到本地后,在项目根目录下,编译并安装所有模块到 Maven 本地仓库缓存,同时会生成 ANTLR .g4 语法文件对应的解析器 Java 类,这样在 IDE 就不会有相关的编译错误了。
mvnw install
$ claude mcp add json-repair \
-- python -m otcore.mcp_server <graph>