JSON for Dummies (parte 1)

Abbiamo visto nella serie sul Binding come popolare l’interfaccia della vostra applicazione con dati salvati in una struttura dati. Le app moderne utilizzano dati che provengono da fonti esterne e tipicamente vengono utilizzati formati di scambio ottenuti da serializzazione dei dati. I formati più utilizzati sono l’XML e il JSON.

L’operazione di serializzazione/deserializzazione può essere gestita tramite il componente NuGet JSON.NET, utilizzando JsonConvert.DeserializeObject<T>(string json) e JsonConvert.SerializeObject(object o) o in alternativa utilizzare la classe nativa di .NET System.Runtime.Serialization.Json.DataContractJsonSerializer con i metodi ReadObject e WriteObject.

Per il nostro esempio utilizzeremo il componente di JSON.NET

Creiamo prima di tutto la nostra struttura dati:

public class MyStruct
{
public string Title { get; set; }
public string Name { get; set; }
public List<MyItem> List { get; set; }
}

    public class MyItem
{
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}

In fase di inizializzazione dell’app creiamo una istanza della mia classe e la popoliamo con valori di test

Struct = new MyStruct()
{
Title = “test”,
Name = “name”,
List = new List<MyItem>()
{
new MyItem(){Id = 0, Name=”name0″, Description= “description0″},
new MyItem(){Id = 1, Name=”name1”, Description= “description1″},
new MyItem(){Id = 2, Name=”name2”, Description= “description2”},
}
};

A questo punto otteniamo il nostro oggetto serializzato con JSON.NET semplicemente con

string serializedData = JsonConvert.SerializeObject(Struct);

Il valore della stringa serializedData, che contiene tutti i dati dell’oggetto Struct, è la seguente:

{“Title”:”test”,”Name”:”name”,”List”:[{“Id”:0,”Name”:”name0″,”Description”:”description0″},{“Id”:1,”Name”:”name1″,”Description”:”description1″},{“Id”:2,”Name”:”name2″,”Description”:”description2″}]}

Per ricreare l’oggetto dai dati serializzati bisogna semplicemente utilizzare il metodo Deserialize():

var deserializedData = JsonConvert.DeserializeObject<MyStruct>(serializedData);

che vi restituisce un oggetto di tipo MyStruct.

In questo modo avete un metodo semplice per trasformare semplicemente i vostri dati in e da una stringa di testo (che può essere salvata in locale o in remoto). Nel prossimo post vedremo come utilizzare dati JSON presi da un servizio remoto e come creare la struttura dati per la deserializzazione.

Annunci

2 pensieri su “JSON for Dummies (parte 1)

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...