Formatting: JsonConvert.SerializeObject None o Indented?
Esportare in formato JSON tramite Newtonsoft non è per nulla difficile, ma la parte interessante è stata la lettura via rete del file prodotto viste le dimensioni. Come ho risolto questo problema? Tramite il cambio del Formatting ho generato due file. Il primo -per l’app produttiva- in formato “.min.” ed uno esploso per la fase di sviluppo in modo da potere controllare i dati esportati.
Newtonsoft.Json: Come installarlo
Per prima cosa -se non lo avete già fatto- dovete installare Newtonsoft.Json all’interno del vostro progetto e per farlo vi basterà lanciare il seguente comando dal Package Manager
Install-Package Newtonsoft.Json -Version 12.0.1
Attenzione: La versione 12.0.1 è quella più recente presente sulla pagina del pacchetto Newtonsoft.Json (nuget.org) però per una serie di compatibilità con altri pacchetti presenti nel mio csproj ho dovuto mettere la 11.0.2
Formatting: Chi sei e come funzioni?
Per farlo ho scritto un metodo che accetta in ingresso due valori:
- List
dynamics : tutti gli oggetti su cui effettuare JsonConvert.SerializeObject - bool debugMode: se true il file avrà Formatting.Indented, altrimenti Formatting.None. Newtonsoft.Json.Formatting (cs)
|
|
Ora, vediamo la parte pratica che chiama il codice appena scritto e come sfruttarla. Formatting - debug mode On (cs)
|
|
Formatting - debug mode Off (cs)
|
|
Nel mio caso il risparmio di spazio è stato notevole e si trattava di circa il 30% dello spazio. Questo implica una riduzione notevole di tempo nello spostamento e lettura via rete.
Formatting Tips:
Per semplificare il tutto il valore della variabile debugMode lo vado a prendere da una configurazione nel file host.json (o local.settings.json) in modo da non dovermi preoccupare di mandare in produzione la variabile sbagliata.