zoukankan      html  css  js  c++  java
  • 序列JSON数据和四种AJAX操作方式

    GET方式获得JSON数据

    $(function () {
                $("#btnGetJson").click(function () {
                    var xhr;
                    if (XMLHttpRequest) {
                        xhr = new XMLHttpRequest();
                    } else {
                        xhr = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    xhr.open("Get", "ResponseJson.ashx", true);
                    xhr.send();
                    xhr.onreadystatechange = function () {
                        //str→json
                        if (xhr.readyState == 4) {
                            var jsonData = $.parseJSON(xhr.responseText);
                            alert(jsonData[0].CityName);
                        }
                    };
                });
            });
    html代码:
     <input type="button" id="btnGetJson" value="获取json"/>
    后台代码:

    音符

    //第一种:拼接字符串,这种方式比较灵活
    System.Collections.Generic.List<CityInfo> cities = new List<CityInfo>()
            {
                new CityInfo(){CityId = 1,CityName = "潍坊"},
                new CityInfo(){CityId = 2,CityName = "青岛"},
                new CityInfo(){CityId = 3,CityName = "济南"},
                new CityInfo(){CityId = 4,CityName = "东营"},
                new CityInfo(){CityId = 5,CityName = "烟台"}
            };
            //[{CityId:1,CityName:"潍坊"},{},{}]
            //第一种:拼接字符串,这种方式比较灵活
            System.Text.StringBuilder sb = new StringBuilder();
            sb.Append("[");
            foreach (var cityInfo in cities)
            {
                sb.Append("{");
                sb.AppendFormat("\"CityId\":\"{0}\",\"CityName\":\"{1}\"", cityInfo.CityId, cityInfo.CityName);
                sb.Append("},");
            }
            string str = sb.ToString().TrimEnd(',');
            str += "]";
            context.Response.Write(str);

    音符

    //第二种序列化的方式
            //如果对象之间有循环依赖,则会出现问题
            //将对象序列化成json格式:
            System.Web.Script.Serialization.JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            string json = javaScriptSerializer.Serialize(cities);
            context.Response.Write(json);

    前台4种AJAX请求的方式:

    $(function () {
                $("#btnGetJson").click(function () {
                    $.getJSON("ResponseJson.ashx", "a=3&b=4", function (data) {
                        alert(data[1].CityName);
                    });
                });
                $("#btnJQGet").click(function () {
                    $.get("ResponseJson.ashx", "dd=33", function (data) {
                        alert(data);
                    });
                });
                //直接post比较方便
                $("#btnJQPost").click(function () {
                    $.post("ResponseJson.ashx", { d: 33, demo: 'shit' }, function (data) {
                        alert(data[0].CityName);
                    }, "json");
                });
                //综合性的
                $("#btnAjax").click(function () {
                    $.ajax({
                        url: "ResponseJson.ashx",
                        data: "a=3&b=4",
                        type: "Post",
                        success: function (data) {
                            alert(data);
                            $("#divDemo").text(data);
                        },
                        error: function () {
                            alert("错误!");
                        }
                    });
                });
                $("#btnLaod").click(function () {  
                    //先定位到  dom元素上,再调用load  
                    $("#divDemo").load("ResponseJson.ashx", { id: 333 }, function (data) {
                        alert(data);
                    });
                });
    
            });
        </script>
    </head>
        <body>
            <input type="button" value="JQ GetJson" id="btnGetJson"/>
            
            <input type="button"  value="JQ Get" id="btnJQGet"/>
            
            <input type="button"  value="JQ Post" id="btnJQPost"/>
            
            <input type="button"  value="JQ ajax" id="btnAjax"/>
            
            <input type="button" value="JQ load" id="btnLaod"/>
            
            <div id="divDemo">
                
            </div>
            
            <table id="demo">

    其中<input type="button" value="JQ ajax" id="btnAjax"/> 是先ALERT,再显示数据

    <input type="button" value="JQ load" id="btnLaod"/>是先显示数据,再ALERT

    Top
    收藏
    关注
    评论
  • 相关阅读:
    NOIP2017 时间复杂度 大模拟
    【Python】CV2的一些基本操作
    【Python】类、对象、self
    【Ubuntu18.04】清空回收站
    小飞机可以解决git clone没有返回的问题吗?
    sqlserver2005 远程服务器数据 完全拷贝 到本地数据库
    Microsoft Visual Studio 2005 多线程时 解决不是该线程创建的来访问
    MS SqL2000 数据库置疑状态的解决方法[转]
    vue 函数配置项watch以及函数 $watch 源码分享
    Vue生命周期之beforeCreate vue 生命周期详解
  • 原文地址:https://www.cnblogs.com/automation/p/2837034.html
Copyright © 2011-2022 走看看