JSON Repair: Solution for JSON Anomalies from LLMs.
Online Playground
·
Report Bug
·
Request Feature
Welcome to the json-repair, your go-to solution for fixing those pesky JSON anomalies that can sidetrack your Large Language Model (LLM) processes. Our toolkit is designed to be the Swiss Army knife for all your JSON repair needs.
- 🏎️ GO Compatibility: Our library ensures a seamless experience for Go developers with its excellent compatibility.
- 🔗 Zero Dependencies: We've crafted a tool with zero external dependencies, keeping it lean and mean.
- 📚 Rich Test Cases: Benefit from a comprehensive suite of test cases that ensure reliability and accuracy.
- 🤖 Auto-Detection & Repair: Intelligently identifies and corrects a wide range of JSON errors, from syntax to structural issues.
- 📐 Terminal CLI Support: The feature can also be used in the command-line and can be chained with command pipes.
- ⚙️ No Anxiety About Error: json-repair always gives the string result.
- 🌐 Open Source: Join a vibrant community of developers contributing to the ongoing evolution of the toolkit.
- Single quote
"
- Line feed
\n
- Improperly formatted JSON string
{"key": TRUE, "key2": FALSE, "key3": Null
- String with mixed quotes
{'key': 'string', 'key2': false, \"key3\": null, \"key4\": unquoted}
- Unclosed array
[1, 2, 3, 4
- Unclosed array object
{"employees":["John", "Anna",
- Standalone left bracket
[
- Standalone right bracket
]
- Array with extra line breaks
[[1\n\n]
- Incorrect key-value pair
{foo: [}
- Correct JSON string
{"text": "The quick brown fox won\'t jump"}
- Incorrect key-value pair
{"value_1": "value_2": "data"}
- JSON string with comment
{"value_1": true, COMMENT "value_2": "data"}
- JSON string with leading spaces
- { "test_key": ["test_value", "test_value2"] }
- String containing a link
{ "content": "[LINK]("https://google.com")" }
- Unclosed link string
{ "content": "[LINK](" }
- Unclosed link and extra key string
{ "content": "[LINK](", "key": true }
- Incorrect key-value pair
{"key":"",}
- etc.
To add the JSON Repair to your Go project, use the following command:
go get github.com/RealAlexandreAI/json-repair
package main
import (
"github.com/RealAlexandreAI/json-repair"
)
func main() {
// broken JSON string from LLM
in := "```json {'employees':['John', 'Anna', ```"
jsonrepair.RepairJSON(in)
// output: {"employees":["John","Anna"]}
}
Additionally, there is
MustRepairJSON
for scenarios that are not suitable for error handling, such as pipes and trusted environments
For more examples, please refer to the Test Cases Or Online Playground
brew install realalexandreai/tap-jsonrepair/jsonrepair
# from raw string
jsonrepair -i "{'employees':['John', 'Anna', "
# output: {"employees":["John", "Anna", "Peter"]}
# from file
jsonrepair -f <json-file>.json
You can also download binary from Release, please refer to the Releases.
- Convert project from Python
- Minimum Go version
- Cover test cases
- Terminal CLI support
- Workflow and GitHub Action
- Add Homebrew tap
- Support Full-width character detection
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- python json_repair - Inspiration of json-repair.
Distributed under the GPLv3 License. See LICENSE
for more information.
RealAlexandreAI - @RealAlexandreAI
Project Link: https://github.com/RealAlexandreAI/json-repair