JSON

Le classi per la gestione dei files JSON
Il diagramma delle classi per JSON
Il diagramma delle classi

La possibilità di salvare (e ovviamente recuperare) i parametri di elaborazione è stata introdotta inizialmente per la GUI, ma poi estesa anche alla riga di comando, dove il file viene però solo letto.

Questo permette di prototipare il risultato con la GUI e poi riprodurlo in maniera massiva in un batch senza dover riscrivere nuovamente tutti i parametri.

La serializzazione e relativa deserializzazione è affidata alla classe System.Text.Json.JsonSerializer (Nuova pagina) inclusa nelle ultime versioni dell'ambiente .NET

Analogamente alla più conosciuta Newtonsoft.Json (Nuova pagina) prevede che si definisca una classe in cui le proprietà, tutte dotate di metodi di accesso, mappino i campi del file.

Per facilitarne l'utilizzo anche come struttura di passaggio dei parametri è stata definita una interfaccia (Listato P1 (Nuova pagina)) e una sua implementazione di base, riportata nel Listato P2 (Nuova pagina).

Da questa classe e quindi dall'interfaccia discendono tutte le altre come riportato nel diagramma all'inizio di questa pagina, cliccando sul quale potrete accedere ai listati di tutte le classi.

E' da notare che le classi possono anche avere un costruttore, che nel caso specifico è utilizzato per inizializzare la lista dei file:

/// <summary>
/// Files to process
/// </summary>
public List<string> FilesList { get; set; }

/// <summary>
/// Default constructor
/// </summary>
public CommonParameters()
{
        FilesList = new();
}

Ed anche proprietà che non devono essere gestite dal parser, in questo caso perchè calcolate autonomamente:

/// <summary>
/// Output paper size
/// </summary>
public string Paper { get; set; }

/// <summary>
/// Output paper size
/// </summary>
[JsonIgnore]
public PaperFormats PaperFormat
{
        get => Utils.GetPaperFormat(Paper);
        set => Paper = value.ToString();
}

In questo esempio la proprietà Paper viene gestita dal parser, mentre PaperFormat, per via dell'attributo JsonIgnore è ignorata ed ottiene o setta il suo valore grazie ai metodi di accesso personalizzati.

Inizio pagina
 
Precedente
Sommario
Successivo