Я пытаюсь выяснить способ игнорировать объекты из-за сериализации на основе некоторых условий. Все, что я могу найти, - это игнорировать свойства объекта с помощью метода ShouldSerialize *, но не как игнорировать весь объект.Условная сериализация объектов в JSON.NET
Вот пример, который объясняет мою ситуацию. У компании может быть несколько сотрудников, и сотрудники могут быть либо текущими, либо не текущими.
Public Class Company
Public Property Name As String
Public Property Employees As List(Of Employee)
End Class
Public Class Employee
Public Property FirstName As List(Of Name)
Public Property LastName As List(Of Name)
Public Property Current As Boolean
End Class
Я хочу иметь возможность игнорировать/исключать необоснованных сотрудников из сериализации в json.
Единственный способ, с которым я могу сейчас подумать, - отделить текущих и не текущих сотрудников от двух свойств, так что я могу просто использовать <JsonIgnoreAttribute()>
для долгосрочного.
Такие, как:
Public Class Company
Public Property Name As String
Public Property CurrentEmployees As List(Of Employee)
<JsonIgnoreAttribute()>
Public Property PastEmployees As List(Of Employee)
End Class
Public Class Employee
Public Property FirstName As List(Of Name)
Public Property LastName As List(Of Name)
Public Property Current As Boolean
End Class
Однако я пытаюсь избежать этого, так как у меня есть ряд этих вещей в моей реальной ситуации, так что я не хочу, чтобы разбить все списки на два, что потребует расширенная модификация кода. Было бы неплохо, если бы это можно было сделать только в сериализации json.
Любая помощь приветствуется. Благодаря!
Это не «условная сериализация», это выборочное клонирование элементов объекта, а затем сериализация всего клона. Вы можете сделать это с помощью LINQ. Я бы сказал, что исходный вопрос был введен в заблуждение –