Json+jquery+asp.net 综合应用实例

    技术2022-05-20  30

    最近在一个项目中看到Json的应用,这个应用最近还是比较突出的,正好有点时间,就学习了一下,作为技术储备。

    一般的Json+jquery+asp.net 的应用在项目中都是ajax的一部分,包括数据源和数据处理页面。经过在网络上的学习,为了可以方便的生成Json,网上一般的方法是引用了Newtonsoft.Json类来做此事。应用该类可以方便的生成Json数据串。

    1.生成Json数据串

    方法1,使用JavaScriptConvert.DeserializeObject对实体进行转换

    下面这个是JavaScriptConvert.DeserializeObject的方法说明

    //把Json字符串反序列化为对象目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象));

    view plaincopy to clipboardprint? // 获取用户数据 IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0); // 使用方法对泛型实体进行转换 string jsonString = JavaScriptConvert.SerializeObject(userInfoList); // 输出串 Response.Clear(); Response.ContentEncoding = Encoding.UTF8; Response.ContentType = "application/json"; Response.Write(jsonString); Response.Flush(); Response.End(); // 获取用户数据 IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0); // 使用方法对泛型实体进行转换 string jsonString = JavaScriptConvert.SerializeObject(userInfoList); // 输出串 Response.Clear(); Response.ContentEncoding = Encoding.UTF8; Response.ContentType = "application/json"; Response.Write(jsonString); Response.Flush(); Response.End(); 方法二,没有实体的情况下,可以适应这种

    view plaincopy to clipboardprint? // 获取用户数据 IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0); // 构成json数据串 StringWriter sw = new StringWriter(); JsonWriter writer = new JsonWriter(sw); foreach (MUsersInfo item in userInfoList) { writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("UserId"); // 属性名称 writer.WriteValue(item.Ts_Users_ID); // 属性值 writer.WritePropertyName("RealName"); writer.WriteValue(item.Ts_User_RealName); writer.WriteEndObject(); writer.WriteEndArray(); } writer.Flush(); // 生成串 string jsonString = sw.GetStringBuilder().ToString(); // 输出 Response.Clear(); Response.ContentEncoding = Encoding.UTF8; Response.ContentType = "application/json"; Response.Write(jsonString); Response.Flush(); Response.End(); // 获取用户数据 IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0); // 构成json数据串 StringWriter sw = new StringWriter(); JsonWriter writer = new JsonWriter(sw); foreach (MUsersInfo item in userInfoList) { writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("UserId"); // 属性名称 writer.WriteValue(item.Ts_Users_ID); // 属性值 writer.WritePropertyName("RealName"); writer.WriteValue(item.Ts_User_RealName); writer.WriteEndObject(); writer.WriteEndArray(); } writer.Flush(); // 生成串 string jsonString = sw.GetStringBuilder().ToString(); // 输出 Response.Clear(); Response.ContentEncoding = Encoding.UTF8; Response.ContentType = "application/json"; Response.Write(jsonString); Response.Flush(); Response.End();   

    两种方式各有各的好处,第一种方便,第二种灵活。

    2.jquery读取json串

    view plaincopy to clipboardprint? $(document).ready(function() { $("#Button1").click(function() { $.getJSON("webService/UserList.aspx", function(json) { alert("total " + json.length.toString() + " records"); for (var i = 0; i < json.length; i++) { $("<li />").appendTo("div").html(json[i].Ts_User_RealName); }  }); }); }); $(document).ready(function() { $("#Button1").click(function() { $.getJSON("webService/UserList.aspx", function(json) { alert("total " + json.length.toString() + " records"); for (var i = 0; i < json.length; i++) { $("<li />").appendTo("div").html(json[i].Ts_User_RealName); }  }); }); });   

    在button1按下时触发获取数据,将json串中的数据,循环做为li标记添加到div中


    最新回复(0)