首先,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
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛