Vai al contenuto
jsonbeautifiers
Italiano

JSON Pretty Print

Formatta qui, oppure copia la riga equivalente per Python, JavaScript, jq e altri sei linguaggi.

Filtra con JSONPath

Sintassi RFC 9535. Il risultato sostituisce il pannello da cui hai aperto questa finestra.

 

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

Pretty print e formattazione sono la stessa operazione con due nomi. Incolla un documento qui sopra per farlo qui, oppure prendi la riga equivalente per il linguaggio in cui stai già lavorando.

Gli esempi qui sotto sono le versioni che funzionano davvero, compresi gli argomenti che di solito si scoprono solo dopo che l’output è uscito sbagliato.

Gli argomenti che fregano tutti

L’ensure_ascii di Python
Vale True per impostazione predefinita, quindi esegue l’escape di ogni carattere non ASCII. Un documento pieno di nomi o di emoji torna come un muro di sequenze \u. Passa ensure_ascii=False.
I separators di Python quando minifichi
json.dumps lascia uno spazio dopo ogni virgola e ogni due punti se non passi separators=(",", ":"), quindi la chiamata ingenua per minificare non minifica.
L’escape delle barre di PHP
json_encode esegue l’escape di barre e Unicode per impostazione predefinita. JSON_UNESCAPED_SLASHES e JSON_UNESCAPED_UNICODE lo disattivano. PHP inoltre indenta con quattro spazi e non ti lascia cambiarlo.
L’escape HTML di Go
L’encoder trasforma <, > e & in \u003c e simili per impostazione predefinita, per un inserimento sicuro nell’HTML. SetEscapeHTML(false) lo disattiva.
Ognuna di queste fa fare andata e ritorno ai tuoi numeri
Analizzare e riserializzare riscrive il testo dei numeri. 1.50 diventa 1.5 e un ID di 19 cifre perde le ultime. Go è l’eccezione: json.Indent lavora sui byte grezzi.

How to do this in code

Pretty print in nove linguaggi e strumenti.

js JavaScript
JSON.stringify(JSON.parse(text), null, 2)
py Python
json.dumps(json.loads(text), indent=2, ensure_ascii=False)

# From a file, on the command line
python -m json.tool --indent 2 --no-ensure-ascii in.json out.json
sh jq e la shell
jq . file.json
curl -s https://api.example.com/x | jq .
pbpaste | jq .            # macOS, from the clipboard
jq -S . file.json         # sorted keys, for stable diffs
go Go

json.Indent riformatta i byte senza decodificare, quindi i tuoi numeri restano intatti.

var out bytes.Buffer
json.Indent(&out, data, "", "  ")
fmt.Println(out.String())
rb Ruby
JSON.pretty_generate(JSON.parse(text))
php PHP
json_encode(json_decode($text), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
java Java
ObjectMapper mapper = new ObjectMapper();
Object value = mapper.readValue(text, Object.class);
String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(value);
rs Rust

Abilita la funzionalità arbitrary_precision di serde_json per mantenere intatto il testo dei numeri durante l’andata e ritorno.

let value: serde_json::Value = serde_json::from_str(text)?;
let pretty = serde_json::to_string_pretty(&value)?;
cs C#
using var doc = JsonDocument.Parse(text);
var pretty = JsonSerializer.Serialize(doc, new JsonSerializerOptions { WriteIndented = true });

Domande frequenti

Pretty print è diverso da beautify o da formattare?
No. Tutti e tre significano aggiungere spazio bianco perché una persona possa leggere il documento. Comunità diverse si sono semplicemente fermate su parole diverse.
Come formatto il JSON in VS Code?
Apri il file e premi Maiusc+Alt+F su Windows e Linux, o Maiusc+Opzione+F su macOS. Per uno spezzone incollato in un file senza titolo, imposta prima la modalità linguaggio su JSON, altrimenti il formattatore non saprà che farsene.
Come formatto la risposta di un curl?
Mandala in pipe: curl -s URL | jq . se hai jq, oppure curl -s URL | python -m json.tool se non ce l’hai. Aggiungi -s a curl, altrimenti il suo indicatore di avanzamento finisce nella pipe.