天天看點

JSON.NET 使用技巧

忽略某些屬性

有時候我們會有這樣的需求,我們隻需要序列化實體類中的一部分屬性,這時候我們可以通過聲明忽略掉一些我們不需要序列化的屬性,有兩種方式可以使用麼達到這個目标:

首先,可以考慮使用<code>JsonIgnore</code>特性修飾不需要進行序列化的屬性,如下所示:

運作程式:

如果說你需要序列化的類有很多的屬性,而你是需要使用其中的一小部分,如果使用上面的上面方式就會比較繁瑣(因為需要忽略的屬性太多了),這時候可以考慮使用<code>DataContract</code>特性修飾被序列化的類,使用<code>DataMember</code>特性修飾需要進行序列化的屬性,其他沒有該特性屬性會被自動忽略掉。如下所示:

<code>DataContract</code>特性和<code>DataMember</code>特性都從屬于: <code>System.Runtime.Serialization</code>命名空間。

序列化對象時循環引用異常的解決辦法

序列化一個對象時,如果該對象有一個集合屬性,改集合的類型就是對象本身的話,預設序列化的方法會報一個循環引用的異常,如果需要序列化,隻需聲明下面的屬性即可:

2.1 使用匿名類型作為反序列化實體

<a href="http://www.newtonsoft.com/json">http://www.newtonsoft.com/json</a>