ajax之Json

来源:互联网 发布:linux安装weblogic 编辑:程序博客网 时间:2024/04/29 09:39

 

(一)前台

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(function () {

            $.post("/06Json/HandlerJson.ashx", function (data, status) {

                //第一种情况:拿到类对象

                // var person = $.parseJSON(data);//拿到后台传过来的数组对象

                //alert(person.Name);

                //  $("#myName").val(person.Name);
                //  $("#myAge").val(person.Age);


                //第二种情况:拿到字符串数组

                //var strs = $.parseJSON(data); //拿到后台传过来的数组对象
                //alert(strs[0]);
                //alert(strs[1]);

                var pers = $.parseJSON(data); //拿到后台传过来的数组对象

                alert(pers[0].Name); //打印出类数组元素的Name属性
                alert(pers[0].Age); //打印出类数组元素的Age属性
                alert(pers[1].Name); //打印出类数组元素的Name属性
                alert(pers[1].Age); //打印出类数组元素的Age属性

            });
        });   
    </script>

</head>
<body>

我的名字:<input type="text" id="myName" />

我的年龄:<input type="text" id="myAge" />

</body>
</html>

 

(二)后台

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace _13ajax._06Json
{
    /// <summary>
    /// HandlerJson 的摘要说明
    /// </summary>
    public class HandlerJson : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //context.Response.Write("Hello World");

            JavaScriptSerializer jss = new JavaScriptSerializer();

            //第一种情况传递的是一个类对象,可以在前台拿到后台传送过来的类对象字符串
            /*
            string json = jss.Serialize(new person() { Name="张三", Age=12 });
            context.Response.Write(json);//打印出得到的json对象
            */

            //第二种情况传递的是一个数组,可以在前台根据下标拿到后台传送过来的数组对象的元素
            /*
            string[] strs = {"tom","jim","kait" };
            string json1 = jss.Serialize(strs);//把数组对象实例化
            context.Response.Write(json1);//打印出数组对象
            */

            //第三种情况传递类对象数组
            person[] pers = new person[] {new person(){ Name="老大", Age=29},new person(){ Name="老二", Age=28} };//得到一个类对象数组,并为数组对象实例化
            string json2 = jss.Serialize(pers);//把类数组对象实例化
            context.Response.Write(json2);//打印出类数组对象
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

    public class person//声明一个Person类
    {
       public string Name{get;set;} //设置name字段
       public int Age { get; set; } //设置age字段
    }


}

 

 

原创粉丝点击