JsonSerializer.Serialize возвращает пустой объект
Я пытаюсь сохранить объект созданного мной класса в файл, но JsonSerializer.Serialize
возвращается {}
.
class User : DalObject<User>
{
private readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private string email;
private string nickname;
private string password;
private bool LoggedIn;
public User(string email, string password, string nickname, bool LoggedIn)
{
this.email = email;
this.password = password;
this.nickname = nickname;
this.LoggedIn = LoggedIn;
}
public string ToJson()
{
var options = new JsonSerializerOptions
{
WriteIndented = true
};
log.Debug("User " + this.email + " saved");
return JsonSerializer.Serialize(this, options);
}
1 ответ
Решение
JsonSerializer.Serialize упорядочивает только общие свойства. У вас есть только (частные) поля.
Поведение сериализации
По умолчанию все общедоступные свойства сериализуются. Вы можете указать свойства для исключения.
...
В настоящее время поля исключены.
См. Также этот запрос функции
Работать вокруг
Вы можете использовать Json.NET и добавить[JsonProperty]
в частные поля.
Метод в Json.NET: JsonConvert.SerializeObject