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(); }