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 = "[email protected]"
};

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":"[email protected]"}
Методы расширения HttpClient и HttpContent

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

Подробнее здесь: https://stackoverflow.com/questions/787 ... g-or-deser
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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