首先,WCF直接提供了返回JSON對象。
如果我們沒有使用WCF,我們可以通過System.Runtime.Serialization.Json.DataContractJsonSerializer類(System.ServiceModel.Web.dll)或System.Web.Script.Serialization.JavaScriptSerializer類(System.Web.Extensions.dll)。
昨天在使用DataContractJsonSerializer類的時候發生件奇怪的事情,同樣的代碼在我機子上可以運行,在另一臺機子上卻運行不過。拋出不可序列化的運行時異常。提示需要在序列化的類上加定制特性Serializable,或者類上加DataContract且成員加DataMember。
在類上使用Serializable,會序列化字段,而非屬性,輸出的不是我想要的(一堆小寫的字段,我要的是大寫的公有屬性)。而使用DataContract和DataMember,則必須每個要輸出的屬性都加上DataMember,這也比較麻煩,不是我希望的。然后同事找到了JavaScriptSerializer類,
經測試,不需要顯式的添加定制特性,它會默認輸出所有公有屬性。OKay,這便是我想要的。
本文出處:http://www.cnblogs.com/zhucai
上一篇 做大型網站請先付出成本