pub fn sanitize_json(input: &str) -> StringExpand description
Sanitize malformed JSON string
Fixes common syntax errors that LLMs produce:
- Trailing commas before
}or] - Missing closing braces
}or brackets]
§Arguments
input- The potentially malformed JSON string
§Returns
A sanitized JSON string that may be parseable by serde_json.
§Examples
use fuzzy_parser::sanitize_json;
// Trailing comma in object
assert_eq!(sanitize_json(r#"{"a": 1,}"#), r#"{"a": 1}"#);
// Trailing comma in array
assert_eq!(sanitize_json(r#"[1, 2, 3,]"#), r#"[1, 2, 3]"#);
// Missing closing brace
assert_eq!(sanitize_json(r#"{"a": 1"#), r#"{"a": 1}"#);
// Missing closing bracket
assert_eq!(sanitize_json(r#"["a", "b""#), r#"["a", "b"]"#);
// Nested structures
assert_eq!(
sanitize_json(r#"{"items": [1, 2,], "name": "test",}"#),
r#"{"items": [1, 2], "name": "test"}"#
);
// Already valid JSON passes through unchanged
assert_eq!(sanitize_json(r#"{"a": 1}"#), r#"{"a": 1}"#);