Cannot repair JSON with an extra closing brace before additional root properties
#159 aperta il 28 mar 2026
Metriche repository
- Star
- (2397 stelle)
- Metriche merge PR
- (Merge medio 26g 22h) (2 PR mergiate in 30 g)
Descrizione
jsonrepair appears unable to repair JSON where an extra closing brace closes the root object too early, followed by additional top-level properties.
Minimal repro:
import { jsonrepair } from 'jsonrepair'
const broken = '{"a":{"b":1}}},"c":2}'
console.log(jsonrepair(broken))
CLI repro:
printf '%s' '{"a":{"b":1}}},"c":2}' | jsonrepair
Actual result:
Error: Unexpected character "," at position 14
Expected result:
{"a":{"b":1},"c":2}
The library already documents repairs like adding missing closing brackets, repairing truncated JSON, stripping trailing commas, etc. This case seems like the inverse: there is one superfluous closing brace, and removing it would make the document valid again.
I ran into this with a larger LLM-generated JSON payload where a nested object had one extra } immediately before the next top-level key, which caused the root object to close early.
If this behavior is intentional and out of scope, a note in the README about not handling superfluous closing braces would also help.