本篇内容将展示如何使用VS2008扩展方法去将一个对象序列化成JSON字符串
1.添加System.Web.Extensions.dll 程序集的引用
2.添加JSONHelper 类
using System.Web.Script.Serialization; public static class JSONHelper { static JSONHelper(){} public static string ToJSONString(this object obj) //扩展方法 { JavaScriptSerializer Serializer = new JavaScriptSerializer(); return Serializer.Serialize(obj); } }
3.生成实体类
注:可以用Linq生成实体类
public partial class area { private int _id; private string _areaname; public int id { get; set; } public string areaname { get; set; } }
4.使用Ajax调用测试
新建test.aspx页面
public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { List<area> areas = new List<area>(); areas.Add(new area { id = 1, areaname = "浦东新区" }); areas.Add(new area { id = 1, areaname = "闵行区" }); string JSONstr = areas.ToJSONString(); Response.Write(JSONstr); } }
智能感知中出现了 ToJSONString 扩展方法(方法名前面图标中的向下箭头表示扩展方法)
5.使用Jquery进行调用
创建 default.aspx页面,代码如下
<script type="text/javascript" language="javascript" src="jquery.js"></script> <div> <input id="b1" type="button" value="测试" /> <span></span> <script language="javascript" type="text/javascript"> $("#b1").click(test); function test() { $.ajax({ type: "get", //使用get方法访问后台 dataType: "json", //返回json格式的数据 url: "test.aspx", //要访问的后台地址 success: function (msg) { $("span").html(msg[1].id + ":" + msg[1].areaname); }, error: function() { alert("error"); } }); } </script> </div>
7.如果不用实体类,只使用数组
ArrayList x = new ArrayList(); x.Add("浦东新区"); x.Add("闵行区"); string JSONstr = x.ToJSONString(); Response.Write(JSONstr);
客户端接受到的返回值