Сериализация списка со свойствами с использованием .net System.Text.JsonC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сериализация списка со свойствами с использованием .net System.Text.Json

Сообщение Anonymous »

как я могу позволить Json Serializer игнорировать перечисление класса и сериализовать его как объект и перечислить только его свойства.

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

public class ObjectList : IEnumerable where T : class
{
public ObjectList()
{
this.Items = new List();
}
public string Group { get; set; }
public int Count { get => this.Items.Count; set { } }
public List Items { get; set; }

public IEnumerator GetEnumerator() { return this.Items.GetEnumerator(); }
IEnumerator IEnumerable.GetEnumerator() { return this.Items.GetEnumerator(); }
}
public class ItemList : ObjectList
{
}
Предполагая следующее содержание

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

var list = new ItemList()
{
Group = "Group",
Items = new List()
{
new ListItem() { Name = "Foo"},
new ListItem() { Name = "Bar"},
}
};
Теперь, когда я сериализую контент, используя следующий код.

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

var txt = System.Text.Json.JsonSerializer.Serialize(list, new JsonSerializerOptions()
{
WriteIndented = true,
});
Console.WriteLine(txt);
Я получаю следующий результат

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

[{"Name":"Foo"},{"Name":"Bar"}]
Свойства объекта списка (Группа, Количество, Элементы) не отображаются. Результат, который я ожидаю, будет следующим:

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

{"Group":"Group","Count":2,"Items":[{"Name":"Foo"},{"Name":"Bar"}]}
Удалить перечисление из основного класса не вариант. Поэтому мне нужно указать сериализатору обрабатывать класс ItemList как объект, а не как перечисление.
Можете ли вы мне помочь в этом вопросе?
Заранее спасибо.

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

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

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

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

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

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

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