Newtonsoft: JSON Format da string ... a

Durante uno sviluppo recente mi sono trovato a dovere affrontare nuovamente una situazione vissuta in passato legata alla leggibilità di un file JSON da parte dell’utente finale. Cosa intendo per leggibilità? Mi riferisco a presentare un file formattato in modalità Formatting.Indented partendo da un Json privo di formattazione.

Non capite l’esigenza e la motivazione? Provate a leggere quanto segue!

JSON & Formatting.Indented

Anche in questo caso -come nel precedente- l’esigenza era molto chiara. Nel body della richiesta ricevo un stringa in base64 “contenente” il nostro JSON. Ricevendo la chiamata da fonti esterne non posso sapere se questo valore verrà inviato formattato oppure no. Il problema -come potrete immaginare- si pone quando l’utente finale dovrà leggere un JSON minify.

Come risolvere? L’operazione è decisamente più semplice di quanto possiate immaginare!

1
2
3
4
5
6
7
8
public static string GetJSONIndented<T>(string json)
{
    T item = JsonConvert.DeserializeObject<T>(json);
    
    string result = JsonConvert.SerializeObject(item, Formatting.Indented);

    return result;
}

Bravissimo Andrea, la teoria è davvero bella! Se ricordo bene nel tuo caso specifico ricevevi un contenuto JSON a te ignoto e totalmente generico.

Come l’hai risolto? Semplicemente passando dynamic come T per astrarmi nel modo più assoluto.

Ricordo benissimo il post dynamic: usi ed abusi e personalmente sono ancora di questa idea. In questo caso -lo ammetto- usare dynamic come T aiuta tantissimo.