System.Net.Http.Json не учитывает поля при сериализации или десериализации в JSON [дубликат]C#

Место общения программистов C#
Anonymous
System.Net.Http.Json не учитывает поля при сериализации или десериализации в JSON [дубликат]

Сообщение Anonymous »

При попытке сериализации модели, данные которой хранятся в полях System.Net.Http.Json, выводится пустой объект JSON. Это работает только тогда, когда я использую свойство с геттерами и сеттерами.
Я пытался выяснить, в чем разница между ними, но не смог найти ничего, что могло бы повлиять на их сериализуемость
Рассмотрим следующий класс

Код: Выделить всё

public class User
{
public int Id;
public string Name;
public string Username;
public string Email;
}
При попытке сериализовать объект этого вызова через JsonSerializer.Serialize мы получаем {} в качестве вывода

Код: Выделить всё

var user = new User()
{
Id = 12,
Name = "user",
Username = "username",
Email = "user@email.com"
};

var jsonString = JsonSerializer.Serialize(user);
Console.WriteLine(jsonString);
Только когда я обновляю модель User для использования свойств с методами получения и установки, JsonSerializer.Serialize работает должным образом.

Код: Выделить всё

public class User
{
public int Id { get; set; }
public string Name {g et; set; }
public string Username { get; set; }
public string Email { get; set; }
}
После этого изменения мы получим следующий результат

Код: Выделить всё

{"Id":12,"Name":"user","Username":"username","Email":"user@email.com"}
Методы расширения HttpClient и HttpContent

Следуя приведенному выше руководству MSDN, мы преобразовали свойства в поля, что в этом случае также нарушило десериализацию.

Подробнее здесь: https://stackoverflow.com/questions/787 ... g-or-deser

Вернуться в «C#»