private static void JsonSerializationDemo()
{
Header("JSON сериализация");
TrainJson train = new TrainJson{ Speed = 190.2, Length = 8, Travellers = new[] {"Иванов И.И.", "Петров П.П.", "Сидоров С.С."}};
Comment("Объект до сериализации");
train.Print();
Console.WriteLine();
using (MemoryStream memoryStream = new MemoryStream())
{
// Выполняем сериализацию в поток в памяти
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(TrainJson));
serializer.WriteObject(memoryStream, train);
// Печатаем результат на экран
memoryStream.Position = 0;
StreamReader reader = new StreamReader(memoryStream);
string json = reader.ReadToEnd();
Comment("Результат JSON сериализации");
Console.WriteLine(json);
Console.WriteLine();
memoryStream.Position = 0;
// Выполняем десериализацию
TrainJson trainCopy = (TrainJson)serializer.ReadObject(memoryStream);
Comment("Копия объекта после сериализации.");
trainCopy.Print();
Console.WriteLine("\r\nReferenceEquals(train, trainCopy)={0}", ReferenceEquals(train, trainCopy));
reader.Close();
}
Pause();
}