ASP.Net3.5实现对象JSON序列化

本篇内容将展示如何使用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);
    }
}

image 智能感知中出现了 ToJSONString 扩展方法(方法名前面图标中的向下箭头表示扩展方法)

5.使用Jquery进行调用
    image 
    创建 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>

6.结果

 

    image

7.如果不用实体类,只使用数组

        ArrayList x = new ArrayList();
        x.Add("浦东新区");
        x.Add("闵行区"); 
        string JSONstr = x.ToJSONString();
        Response.Write(JSONstr);
客户端接受到的返回值
image 
posted @ 2009-06-11 15:24  YouBook  阅读(987)  评论(0编辑  收藏  举报