zoukankan      html  css  js  c++  java
  • Jquery Ajax+.ashx Json数据格式

           1.Json(JavaScript Object Notation) ,是轻量级的文本数据交换格式。JSON 比 XML 更小、更快,更易解析。在Ajax,传递数据时长用到。 JSON 语法是 JavaScript 语法的子集,可用eval()可将Json对象转换为Javascript对象,这样就可以用Javascript来处理json了

          2. Json.Net :一个比较不错.net json框架。它可用灵活的支持.net对象的序列化和反序列化,可用支持Linq操作Json,支持Json与xml的转换,支持net2.0以上版本,它序列化与反序列化比Net自带处理Json类效率要高。

             可以在NuGet(库类程序包管理器)--->库类程序包管理器控制器——>输入“PM> Install-Package Newtonsoft.Json” VS 会自动下载最新的Json.Net插件。

          3.Jquery 文件

            

    <script type="text/javascript">
            $(function () {
                $("#sand").click(function () {
                    $.ajax({
                        type: "GET",//发送格式
                        url: "JsonAjax.ashx", //发送地址
                        //发送参数,encodeURL()给参数编码,因为参数是中文可能出现乱码情况
                        data: { name: encodeURI($("#author").val()), content: encodeURI($("#content").val()) },
                        //返回数据格式
                        datatype: "json",
                        //Ajax执行成功后函数
                        success: function (obj) {
                        //Eval()方法把Json对象转换成Javascript对象,这个Javascript才能正确处理Json数据
                            var data = eval(obj)
                            $("#Msg").empty();
                            //循环数据
                            $(data).each(function () {
                            //插入对象到DIV中
                                $("#Msg").append("User:" + this['user'] + "<br/>");
                                $("#Msg").append("Msg:" + this['text'] + "<br/>");
                                $("#Msg").append("Date:" + this['time'] + "<br/>");
                            });
                        },
                        error: function () {
                            alert("error");
                        }
                    });
                });
            });
        </script>

         4.  ashx文件

              

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using Newtonsoft.Json;//Json.Net类库
    
    namespace WeAppJqueryChart
    {
        /// <summary>
        /// JsonAjax1 的摘要说明
        /// </summary>
        public class JsonAjax1 : IHttpHandler
        {
            
            public void ProcessRequest(HttpContext context)
            {
                //用System.Web.HttpUtility.UrlDecode()方法解码接收的参数
                //Ajax data传的参数必须用context.request["xxx"]方式接收参数
                string name = System.Web.HttpUtility.UrlDecode(context.Request["name"]);
                string content = System.Web.HttpUtility.UrlDecode(context.Request["content"]);
                IISHandler ajax = new IISHandler();
                List<IISHandler.Message> messageList = new List<IISHandler.Message>();
                //接收数据保存数据
                if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(content))
                {
                    IISHandler.Message message = new IISHandler.Message() { id = Guid.NewGuid().ToString(), user = name, text = content, time = DateTime.Now.ToString() };
                    messageList.Add(message);
                    ajax.Save(messageList);
                }
                //返回要查询的数据
                List<IISHandler.Message> ShowList = ajax.GetMessages(10);
                //用Json.Net类库List<IISHandler.Message>的Json序列化
                string Json = JsonConvert.SerializeObject(ShowList, Formatting.Indented);
                //返回Json数据
                context.Response.Write(Json);
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

                5.web.config 配置.ashx文件

              

      <system.web>
     <httpHandlers>
    <!--<add verb="路径名称(表示只有请求路径为“JsonAjax.ashx"才执行Type文件) path=(请求类型Post,Get) type=(文件唯一标识(命名空间+.ashx文件名))"/>-->
          <add verb="JsonAjax.ashx" path="*" type="WeAppJqueryChart.JsonAjax" validate="true"/>
        </httpHandlers>
    </system.web>

        

  • 相关阅读:
    Django的常用方法以及配置
    orm 练习题
    Codeforces 898 贪心关闭最少闹钟 优先队列最少操作构造N/2squares 讨论情况哈希数字串分割a+b=c
    Codeforces 985 最短水桶分配 沙堆构造 贪心单调对列
    At grand 024
    Codeforces 982 树边两端点计数偶数连通块 鲨鱼活动最小K最大location 扩展欧几里得方块内光线反射
    Codeforces 984 扫雷check 欧几里得b进制分数有限小数判定 f函数最大连续子段
    Codeforces 979 字符串强制N变换最多出现字母 DFS子树 暴力01字典树
    Codeforces 899 1-N两非空集合最小差 末尾最多9对数计算 pair/链表加优先队列最少次数清空
    Atcoder Regular 097 相邻球交换目的递增DP
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2806380.html
Copyright © 2011-2022 走看看