首先,WCF直接提供了返回JSON對(duì)象。
如果我們沒有使用WCF,我們可以通過System.Runtime.Serialization.Json.DataContractJsonSerializer類(System.ServiceModel.Web.dll)或System.Web.Script.Serialization.JavaScriptSerializer類(System.Web.Extensions.dll)。
昨天在使用DataContractJsonSerializer類的時(shí)候發(fā)生件奇怪的事情,同樣的代碼在我機(jī)子上可以運(yùn)行,在另一臺(tái)機(jī)子上卻運(yùn)行不過。拋出不可序列化的運(yùn)行時(shí)異常。提示需要在序列化的類上加定制特性Serializable,或者類上加DataContract且成員加DataMember。
在類上使用Serializable,會(huì)序列化字段,而非屬性,輸出的不是我想要的(一堆小寫的字段,我要的是大寫的公有屬性)。而使用DataContract和DataMember,則必須每個(gè)要輸出的屬性都加上DataMember,這也比較麻煩,不是我希望的。然后同事找到了JavaScriptSerializer類,
經(jīng)測試,不需要顯式的添加定制特性,它會(huì)默認(rèn)輸出所有公有屬性。OKay,這便是我想要的。
轉(zhuǎn)載需注明出處:http://www.cnblogs.com/zhucai
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇