Suggerirei Json.Net, vedi esempio qui sotto:
List<data> _data = new List<data>();
_data.Add(new data()
{
Id = 1,
SSN = 2,
Message = "A Message"
});
string json = JsonConvert.SerializeObject(_data.ToArray());
//write string to file
System.IO.File.WriteAllText(@"D:\path.txt", json);
o la versione leggermente più efficiente del codice precedente (non utilizza una stringa come buffer):
//open file stream
using (StreamWriter file = File.CreateText(@"D:\path.txt"))
{
JsonSerializer serializer = new JsonSerializer();
//serialize object directly into file stream
serializer.Serialize(file, _data);
}
Documentazione: Serialize JSON to a file
Perché? Ecco uno feature comparision between common serialisers as well as benchmark tests .
Di seguito è riportato un grafico della performance tratta dal articolo collegato:
Questo seperate post, afferma che:
Json.NET è sempre stato efficiente della memoria, lo streaming e la lettura scrivere documenti di grandi dimensioni piuttosto che caricarli interamente in memoria, ma sono riuscito a trovare un paio di punti chiave in cui le allocazioni oggetto potrebbero essere ridotte ...... (ora) Json.Net (6.0) alloca 8 volte meno memoria JavaScriptSerializer
.
benchmark sembrano essere Json.Net 5, la versione corrente (in scrittura) è 10. Quale versione di serializzatori Net standard utilizzati non menzionato
Queste prove sono ovviamente dagli sviluppatori che mantengono la biblioteca. Non ho verificato le loro affermazioni. In caso di dubbio, provali tu stesso.
Come funziona JSON.NET differisce dal supporto integrato fornito dalle classi 'JavaScriptSerializer' e' DataContractJsonSerializer'? –
@RobertHarvey Trovo più facile da usare e più robusto. Credo che Microsoft sia d'accordo nel ritenere che stiano progettando di implementarlo nel sistema centrale. Credo anche che sia molto più veloce. Ho visto alcune statistiche da qualche parte per sostenere questo, ma non li ho in mano al momento. – Liam
e implementa meglio le date, http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx – Liam