sanitize_json

Function sanitize_json 

Source
pub fn sanitize_json(input: &str) -> String
Expand 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}"#);