, который делает возможным побитовое сочетание его значений. Например, если вы хотите читать строки (и числа) и записывать числа в виде строк, тогда применяйте следующую настройку:
При таком изменении данные JSON, созданные для класса
Car
, будут выглядеть так:
{
"canFly": true,
"canSubmerge": false,
"theRadio": {
"hasTweeters": true,
"hasSubWoofers": false,
"stationPresets": [
"89.3",
"105.1",
"97.1"
],
"radioId": "XF-552RR6"
},
"isHatchBack": false
}
Потенциальные проблемы, связанные с производительностью, при использовании JsonSerializerOption
В случае применения класса
JsonSerializerOption
лучше всего создать единственный экземпляр и многократно использовать его повсюду в приложении. С учетом сказанного модифицируйте операторы верхнего уровня и методы, относящиеся к JSON, как показано ниже:
Сериализация коллекций объектов в данные JSON выполняется аналогично сериализации одиночного объекта. Поместите приведенную далее локальную функцию в конец операторов верхнего уровня:
Как и десериализация XML, десериализация JSON является противоположностью сериализации. Показанная ниже функция будет десериализировать данные JSON в тип, заданный при вызове обобщенной версии метода:
static T ReadAsJsonFormat<T>(JsonSerializerOptions options,
string fileName) =>
System.Text.Json.JsonSerializer.Deserialize<T>
(File.ReadAllText(fileName), options);
Добавьте к операторам верхнего уровня следующий код для восстановления объектов (или списка объектов) из данных JSON: