Язык программирования C#9 и платформа .NET5 - Джепикс Филипп - Страница 375
- Предыдущая
- 375/642
- Следующая
Изменить размер шрифта:
375
using (Stream fStream = new FileStream(fileName, FileMode.Open)) { T obj = default; obj = (T)xmlFormat.Deserialize(fStream); return obj; }}Добавьте к операторам верхнего уровня следующий код, чтобы восстановить XML-разметку обратно в объекты (или списки объектов):
JamesBondCar savedCar = ReadAsXmlFormat<JamesBondCar>("CarData.xml");Console.WriteLine("Original Car: {0}",savedCar.ToString());Console.WriteLine("Read Car: {0}",savedCar.ToString());List<JamesBondCar> savedCars = ReadAsXmlFormat<List<JamesBondCar>>("CarCollection.xml");Сериализация и десериализация с помощью System.Text.Json
В пространстве имен
System.Text.JsonSystem.Text.Json.JsonSerializerУправление генерацией данных JSON
По умолчанию
JsonSerializer
Сериализация объектов с использованием JsonSerializer
Класс
JsonSerializerSerialize()Program.csstatic void SaveAsJsonFormat<T>(T objGraph, string fileName){ File.WriteAllText(fileName, System.Text.Json.JsonSerializer.Serialize(objGraph));}Добавьте к своим операторам верхнего уровня следующий код:
SaveAsJsonFormat(jbc, "CarData.json");Console.WriteLine("=> Saved car in JSON format!");SaveAsJsonFormat(p, "PersonData.json");Console.WriteLine("=> Saved person in JSON format!");Когда вы будете исследовать файлы JSON, вас может удивить тот факт, что файл
CarData.jsonPersonData.jsonFirstnameJsonSerializerВключение полей
Включить открытые поля в генерируемые данные JSON можно двумя способами. Первый способ предусматривает использование класса
JsonSerializerOptionsJsonSerialize[Jsonlnclude]JsonSerializationOptionsJsonExcludeМодифицируйте метод
SaveAsJsonFormat()static void SaveAsJsonFormat<T>(T objGraph, string fileName){<b> var options = new JsonSerializerOptions</b><b> {</b><b> IncludeFields = true,</b><b> };</b> File.WriteAllText(fileName, System.Text.Json.JsonSerializer.Serialize(objGraph, options));}Вместо применения класса
JsonSerializerOptionsXmlJsonSerializer// Radio.cspublic class Radio{<b> [JsonInclude]</b> public bool HasTweeters;<b> [JsonInclude]</b> public bool HasSubWoofers;<b> [JsonInclude]</b> public List<double> StationPresets;<b> [JsonInclude]</b> public string RadioId = "XF-552RR6"; ...}// Car.cspublic class Car{<b> [JsonInclude]</b> public Radio TheRadio = new Radio();
375
- Предыдущая
- 375/642
- Следующая
Перейти на страницу:
