LLm json output repair for json
- Java 100%
| src | ||
| .gitignore | ||
| LICENSE | ||
| pom.xml | ||
| README.md | ||
JSON Repair Java
这是Python版本json-repair的Java实现,提供了修复无效JSON字符串的功能。
功能特性
- 修复缺少引号的JSON键
- 修复缺少结束括号的JSON
- 修复缺少逗号的JSON
- 支持单引号字符串
- 支持尾随逗号
- 支持JSON注释(// 和 /* */)
- 支持Unicode转义序列
- 支持流式JSON修复
- 提供详细的修复日志
安装
Maven依赖
<dependency>
<groupId>com.weisanju</groupId>
<artifactId>json-repair-java</artifactId>
<version>0.0.1</version>
</dependency>
Gradle依赖
implementation 'com.weisanju:json-repair-java:0.0.1'
依赖项
- Java 8+
- Jackson 2.15.2+
基本用法
import io.github.weisanju.jsonrepair.JsonRepair;
// 修复JSON字符串
String invalidJson = "{name: \"John\", age: 30}";
String repairedJson = JsonRepair.repairJson(invalidJson);
System.out.
println(repairedJson);
// 输出: {"name":"John","age":30}
解析为对象
// 解析为Java对象
Object obj = JsonRepair.loads(invalidJson);
if(obj instanceof Map){
Map<String, Object> map = (Map<String, Object>) obj;
System.out.
println("name: "+map.get("name"));
System.out.
println("age: "+map.get("age"));
}
从文件加载
// 从文件加载JSON
Object obj = JsonRepair.fromFile("data.json");
// 从Reader加载JSON
try(
FileReader reader = new FileReader("data.json")){
Object obj = JsonRepair.load(reader);
}
启用日志
// 启用修复日志
Object result = JsonRepair.loads(invalidJson, false, true, false);
if(result instanceof Map){
Map<String, Object> resultMap = (Map<String, Object>) result;
if(resultMap.
containsKey("log")){
List<Map<String, String>> logs = (List<Map<String, String>>) resultMap.get("log");
for(
Map<String, String> log :logs){
System.out.
println("修复日志: "+log.get("message"));
}
}
}
高级用法
// 跳过JSON验证,直接进行修复
String repaired = JsonRepair.repairJson(invalidJson, false, true, false);
// 启用流稳定性(用于流式JSON)
Object result = JsonRepair.loads(invalidJson, false, false, true);
// 指定块大小(用于大文件)
Object result = JsonRepair.fromFile("large.json", false, false, 1024 * 1024);
运行测试
# 编译项目
mvn compile
# 运行测试
mvn test
# 运行示例
mvn exec:java -Dexec.mainClass="io.github.weisanju.jsonrepair.JsonRepairTest"
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。