
🔧 Repair JSON! Solution for JSON Anomalies from LLMs
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.
🎯 Why Choose JSON Repair?
- 🏎️ 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.
🔍 Supported Broken LLM JSON Output
- 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.
(back to top)
🏁 Getting Started
To add the JSON Repair to your Go project, use the following command:
go get github.com/RealAlexandreAI/json-repair
Usage
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
(back to top)
Terminal CLI
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.
Roadmap
- 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).
(back to top)
Contributing
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
(back to top)
License
Distributed under the GPLv3 License. See LICENSE
for more information.
(back to top)
RealAlexandreAI - @RealAlexandreAI
Project Link: https://github.com/RealAlexandreAI/json-repair
(back to top)