我一直在試圖找出一種方法來忽略某些對象被基於某些條件序列化。我所能找到的就是如何使用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輕鬆完成此操作。我會說原來的問題是誤導性的 –