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
    收藏
    关注
    评论
  • 相关阅读:
    eclipse里面自动添加get和set方法
    初探内联方式的 onload="doSomething()"为何要加"()"?而js代码的 onload="doSomething" 和 addEventListener 为何不加"()"?
    ubuntu下安装git,sublime,nodejs
    ajax学习计划
    ajax学习笔记
    滑动窗口思路精髓总结
    Java给定一个字符串,分割字符串使得每个子字符串都是回文串,求最少分割次数
    顺时针打印
    戳气球最少需要几下一样的题
    ip覆盖算法
  • 原文地址:https://www.cnblogs.com/automation/p/2837034.html
Copyright © 2011-2022 走看看