Redazione
a- a+

JSON con asp.NET

Vediamo che cosa è il JSON (Java Script Object Notation), a cosa serve e come utilizzarlo al posto di XML. Esempio e codici.

JSON ovvero Java Script Object Notation, è un “text” o meglio un format leggibile inventato da Douglas Crockford come un format per lo scambio dei dati tra le web application  (si veda  www.JSON.org). I benefici sono svariati e notevoli (rispetto a XML largamente usato):

  • Formato dei dati strutturato sulla fattispecie di XML
  • Alto valore dell’SNR (signal to noise ratio), in altre parole, elimina gli extra caratteri che non sono inerenti ai dati
  • Formato di dati compatto
  • Semplici regole di parsing che rendono l’elaborazione dei dati facile e veloce.

Gli scenari in cui ben si adatta sono:

  • Lo scambio di dati tra piattaforme identiche o differenti come Java, .NET services
  • Il data storage: per esempio MongoDB (www.mongodb.org) usa JSON come formato interno di storage.

Mostreremo un semplice esempio che farà capire le potenzialità di usare JSON invece di XML (per esempio). Consideriamo il caso di dovere scrivere un serializzatore: con JSON potremmo realizzare il più piccolo e più veloce serializzatore polimorfico. Il più piccolo perché ha una dimensione di soli 25 KB quando viene compilato, polimorfico in quanto in grado di serializzare e deserializzare la seguente situazione correttamente a run-time:

class animal { public string Name { get; set;} }
class cat: animal { public int legs { get; set;} }
class dog : animal { public bool tail { get; set;} }
class zoo { public List<animal> animals { get; set;} }

var zoo1 = new zoo();

zoo1.animals = new List<animal>();
zoo1.animals.Add(new cat());
zoo1.animals.Add(new dog());

Questo esempio ci mostra quanto JSON sia importante, perché semplifica la codifica che senza il format JSON sarebbe impensabile. Inoltre potremmo considerarlo come una pietra angolare della programmazione orientata agli oggetti, infatti pochi serializzatori gestiscono una situazione come questa, compreso XmlSerializer. NET non lavora in questo modo e bisogna fare i salti mortali per adattarlo al nostro scopo.

Se si volesse utilizzare XML sarebbe meglio cambiare strada, in quanto otterremmo solo un risultato lento ed elaborato, che non merita neanche di essere menzionato anche se c’è da dire che in casi analoghi si tende a pensare subito proprio all’uso dell’XML.

Passiamo alla scrittura del codice del nostro serializzatore in .NET (C#). Noteremo quanto JSON ci farà risparmiare tempo e righe di codice per l’implementazione. Inoltre con JSON possiamo convertire “da” e “a” JSON format.

// per serializzare un object a string
string jsonText = fastJSON.JSON.Instance.ToJSON(c);

// per deserializzare una string ad un object
var newobj = fastJSON.JSON.Instance.ToObject(jsonText);

La classe principale è: JSON che viene implementata come un singleton, ovvero un tipo particolare di classe che garantisce che soltanto un’unica istanza della classe stessa possa essere creata all’interno di un programma. In questo modo possiamo mantenere in memoria cache l’informazione sul tipo e sulla proprietà con il risultato di velocizzare l’operazione.

Si veda per approfondimenti ed il codice completo:

 “fastJSON” di Mehdi Gholam



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!