JSON pretty: che cos’è e come funziona

di Lorenzo Neri

JSON pretty print: che cos’è e come funziona la pratica di rendere pretty e quindi carino il JSON? Avrai notato più volte che la pretty print legata al formato JSON è qualcosa di parecchio utile e… Se stai cercando di capire cos’è la pretty print e come funziona beh… È quello che scoprirai in questo articolo!

Una delle cose più utili che abbia mai trovato come strumento secondario per quello che ha riguardato tutti i miei progetti legati allo sviluppo web, è senza dubbio la pratica di rendere bello ogni contenuto o file di tipo JSON, di cui ho parlato abbondantemente in questo articolo se volessi approfondire.

Giustamente uno come te che sta leggendo queste righe, è possibile che si stia chiedendo: “Ma in che senso rendere bello il JSON?”.

Te lo spiego brevemente, ma prima: le presentazioni no?

Il mio nome è Lorenzo Neri e sono un informatico: mi occupo di realizzare contenuti che aiutino persone come te a padroneggiare l’arte del nuovo millennio, l’informatica!

Devi sapere che questo articolo così come tanti altri sono frutto dei miei sbagli nel corso della mia vita lavorativa: poi però a un certo punto ho deciso di cambiare rotta.

Come? Documentando.

Documentando con vari articoli che possano aiutare persone come te che mi stai leggendo a risolvere gli stessi problemi che ho incontrato io.

JSON pretty: il problema che si prefigge di risolvere

Dicevamo prima, che sarebbe giusto rispondere alla domanda di prima.

Immagina di avere il seguente oggetto JSON:

{"items":[{"address":"someemail1@yahoo.com","code":"554","error":"554 delivery error: dd This user doesn't have a yahoo.com account (someemail1@yahoo.com) [0] - mta1481.mail.ne1.yahoo.com","created_at":"Thu, 07 May 2015 23:07:47 UTC"},{"address":"someemail2@gmail.com","code":"550","error":"550 5.1.1 The email account that you tried to reach does not exist.  Learn more at\n5.1.1 http:\/\/support.google.com\/mail\/bin\/answer.py?answer=6596 xv3si12818843vdb.43 - gsmtp","created_at":"Sun, 03 May 2015 13:22:49 UTC"}]}

… Non si capisce un tubo vero?

Sarebbe meglio avere qualcosa di più facilmente leggibile vero? Per esempio:

{
  "items": [
    {
      "address": "someemail1@yahoo.com",
      "code": "554",
      "error": "554 delivery error: dd This user doesn't have a yahoo.com account (someemail1@yahoo.com) [0] - mta1481.mail.ne1.yahoo.com",
      "created_at": "Thu, 07 May 2015 23:07:47 UTC"
    },
    {
      "address": "someemail2@gmail.com",
      "code": "550",
      "error": "550 5.1.1 The email account that you tried to reach does not exist.  Learn more at\n5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 xv3si12818843vdb.43 - gsmtp",
      "created_at": "Sun, 03 May 2015 13:22:49 UTC"
    }
  ]
}

È tutto un altro pianeta vero? Molto… Come dire…

JSON pretty: che cos’è? Qualcosa di BELLO

Diciamo che masticare l’inglese nel mondo dell’informatica è particolarmente utile, ma riconosco che ci possa essere chi non lo parli affatto.

Quando si sente dire “JSON pretty” si intende letteralmente “JSON bello”.

Avrai potuto notare dall’esempio precedente che la leggibilità di quell’oggetto JSON è decisamente molto ma MOOOOLTO più alta se reso “pretty” e quindi bello.

La pratica di rendere pretty un contenuto JSON, a prescindere dalla sua natura, consiste proprio in questo: indentare e riportare a capo gli oggetti JSON in modo tale che siano facilmente comprensibili e leggibili.

Come funziona il processo di prettify del JSON

Ovviamente, si tratta di un processo quello legato al rendere pretty il JSON: la smetto con il ripeterlo in inglese giurin giurello!

Di per se non c’è nulla di fantascientifico: come dicevo prima si tratta di un semplice processo di indentazione di ciò che compone il JSON stesso. Per esempio, ogni volta che si trova un nuovo oggetto o un nuovo array, si indenta di un livello il contenuto successivo.

Del resto dove hai già visto questa pratica? In qualsiasi linguaggio di programmazione dico bene? 😉

Una volta che della JSON pretty abbiamo capito che cos’è e come funziona, passiamo al come sfruttare il tutto: una sorta di “How to”!

How to: JSON pretty online

La prima “How to” a cui ho il piacere di rispondere, è quella che possiamo trovare online.

Esistono diversi strumenti che ci permettono di rendere prett… AHEM! Bello leggibile e pulito il nostro JSON, per esempio:

Quello che vedi, è uno strumento gratis che permette di rendere pretty qualunque JSON che gli diamo in pasto!

Un po’ come la mia newsletter: alla quale ti può iscrivere gratis per restare sempre aggiornato sulle mie novità! 😀

Il sito che vedi è JSON formatter, di cui ti lascio direttamente il link precisamente qui per poterlo sfruttare!

Tramite la pagina che ti ho linkato potrai sfruttare anche tu questo sistema!

How to JSON pretty in Python

Con Python a cui ho dedicato un’intera categoria sul mio blog per tutti gli articoli che ho scritto, possiamo sfruttare il modulo json come in questo esempio:

import json
>>>
>>> your_json = '["bla", {"blabla":["test", 10]}]'
>>> parsed = json.loads(your_json)
>>> print(json.dumps(parsed, indent=4, sort_keys=True))
[
    "bla", 
    {
        "blabla": [
            "test", 
            10
        ]
    }
]

E vediamo, prima di salutarci, anche come possiamo fare questa procedura in altri due linguaggi di programmazione!

How to JSON pretty-print con Javascript

A essere auto-referenziali (concedimelo!), ho scritto molto anche su JavaScript: trovi diversi articoli proprio qui!

Tornando a noi, per poter eseguire la pretty-print con Javascript, possiamo sfruttare i metodi “built-in” del JSON:

var oggettoBaseJSON = '{"prova":"provaprova"}';
var jsonPretty = JSON.stringify(JSON.parse(oggettoBaseJSON),null,2);  

Dove il “2” passato nel metodo, nient’altro è che il livello di indentazione di cui parlavamo prima.

E infine…

How to JSON pretty con il potere di PHP

In ultima battuta vediamo come si può rendere bello il nostro JSON in PHP:

<?php
    $json_pretty = json_encode($json_originale, JSON_PRETTY_PRINT);
?>

Semplicissimo e rapidissimo vero? 😀

E se fossi curioso a riguardo, puoi scoprire qualcosa di più a riguardo proprio qui!

Continua a scoprire di più con questi articoli!

Lascia un commento


The reCAPTCHA verification period has expired. Please reload the page.

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più