Net 3.5 用DataContractJsonSerializer实现Json序列和反序列例子
Json序列化和反序列化方法 /// <summary> DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType()); using (MemoryStream ms = new MemoryStream()) serializer.WriteObject(ms,item); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray())); return sb.ToString(); } } /// <summary> DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T jsonObject = (T)ser.ReadObject(ms); ms.Close(); return jsonObject; } 实体类 [DataContract] javascript调用测试代码 $('#getJson').click(function() { alert(result.make); }); public class getJsonHandler: IHttpHandler obj.make = "Make is Value"; context.Response.Write(obj.ToJsJson()); //返回值为 {"color":"Color is Value","make":"Make is Value","model":"Model is Value","year":999} ---------------------------------C#由Json生成对象--------------------------------------- javascript调用测试代码 $('#postJson').click(function() { var m_obj = { make: "Dodge",model: "Coronet R/T",year: 1968,color: "yellow" }; $.ajax({ alert(result.success); }); public class postJsonHandler: IHttpHandler TestObj obj = jsonStr.FromJsonTo<TestObj>(); if (string.IsNullOrEmpty(obj.make) || string.IsNullOrEmpty(obj.model) || string.IsNullOrEmpty(obj.color) || obj.year < 0) public bool IsReusable 使用Json时需要注意,服务器端拼凑生成Json字符串时,一定要注意把字符串用/"/"包裹,不然客户端接收时肯定会报错,根据Json字符串生成对象,是根据对应的名称赋值,多于或少于都不会报错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |