Vai al contenuto
jsonbeautifiers
Italiano
Python Verificato eseguendo il parser su CPython 3.14.3.

Invalid control character at: line L column C (char N)

Una stringa contiene un carattere letterale sotto U+0020, di solito un vero a capo o una tabulazione. JSON richiede che abbiano l’escape. Python ha l’opzione strict=False che li accetta, ma il documento risultante resta non valido per ogni altro consumatore.

Incolla il tuo JSON e vedi esattamente dove si rompe

Input

Nulla di ciò che incolli lascia il tuo browser. L’allowlist connect-src ne fa una garanzia del browser anziché una promessa. Verificalo tu stesso

Che cosa lo provoca davvero

In ordine di quanto spesso ciascuno si rivela essere la risposta.

  1. 01 Testo su più righe dentro una stringa

    Estratti di log, SQL, stack trace e HTML da template contengono tutti veri a capo.

    Si rompe

    json.loads('{"sql": "SELECT *
    FROM t"}')

    Funziona

    json.loads('{"sql": "SELECT *\\nFROM t"}')
  2. 02 JSON assemblato con f-string o per concatenazione

    I valori interpolati non ricevono l’escape. Costruisci un dict e usa json.dumps, che esegue l’escape di tutto correttamente.

    Si rompe

    body = f'{{"note": "{note}"}}'

    Funziona

    body = json.dumps({"note": note})
  3. 03 Una tabulazione copiata da un foglio di calcolo

    Invisibile, e sopravvive intatta al copia e incolla.

Lo stesso errore in altri runtime

Il problema di fondo è identico; cambia solo la formulazione. Se un collega segnala uno di questi messaggi, sta guardando esattamente la stessa cosa che vedi tu.

JavaScript (V8) Bad control character in string literal in JSON at position 11 (line 1 column 12)

Domande frequenti

Che cosa fa strict=False?
json.loads(s, strict=False) consente i caratteri di controllo dentro le stringhe. Ti sblocca, ma il documento resta JSON non valido, quindi qualunque cosa a valle che non sia Python continuerà a rifiutarlo. Sistema piuttosto chi lo produce.

Risolvilo adesso

Incolla il payload nello strumento qui sopra, oppure vai direttamente a quello creato per questo compito.

Esegui l’escape della stringa