JSON

ASP.NET中使用JSON方便实现前台与后台的数据交换

字号+ 作者:H5之家 来源:H5之家 2017-09-09 14:08 我要评论( )

ASP.NET中使用JSON方便实现前台与后台的数据交换

一、前台向后台请求数据

在页面加载时,有时需要对一些表单进行初始化,此时可以利用JQuery的 get 函数向后台发起异步请求:

//初始化函数 function initSettings() { $.get("?Action=init", function (data) { if (data == "NO") { alert("初始化失败!"); } else if (data != null && data != undefined) { var json = JSON.parse(data); setFieldsData(json); } }); } //填充表单数据 function setFieldsData(json) { $("#userSettings input:text").each(function () { $(this).val(json[$(this).attr("name")]); }); }

其中,各表单中含有一个name属性,其值为数据库对应的字段名。 后台的响应如下:

if (Action == "init") { string json = "{"; DataSet ds = new DataSet(); // 此处以加载用户信息为例 ds = DataOperation.DB.Select("select * from USER_USER where USER_ID=" + USER_ID, DataOperation.DB.GetConnType()); ds.Dispose(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { json +="\"" + ds.Tables[0].Columns[i].ColumnName+"\":\""+ds.Tables[0].Rows[0][i]+"\","; } json = json.Substring(0, json.Length - 1); json += "}"; try { Response.Write(json); Response.End(); } catch (Exception) { } } else { Response.Write("NO"); Response.End(); } }

二、前台向后台提交数据

在表单填好后,保存时需要向后台提交数据,利用JSON 可以很方便的获取各表单数据提交并写入到数据库。前台JS 代码如下:

<pre name="code" class="javascript">$("#saveSettings").click(function () { var json = "{"; $("#userSettings input:text").each(function () { json +="\""+$(this).attr("name")+"\":\""+$(this).val()+"\","; // 获取表单值生成 JSON 格式数据 }); json = json.substring(0, json.length - 1); json += "}"; $.post("?Action=save&json=" + json, function (data) { if (data == "NO") { alert("保存失败!"); } if (data == "OK") { alert("保存成功!"); } }); });

后台响应代码如下:

if (Action=="save") { string sqlstr ="update USER_USER set "; string json =Request["json"]; JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary<string, object> data = (Dictionary<string, object>)serializer.DeserializeObject(json); foreach (var item in data) { sqlstr += item.Key + " = '" + item.Value + "',"; } sqlstr = sqlstr.Substring(0, sqlstr.Length - 1); sqlstr += "where USER_ID=" + USER_ID; DataSet ds = new DataSet(); ds = DataOperation.DB.Select("select USER_ID from USER_USER where USER_ID=" + USER_ID , DataOperation.DB.GetConnType()); ds.Dispose(); if (ds.Tables[0].Rows.Count>0) { try { DataOperation.DB.Execnonsql(sqlstr, DataOperation.DB.GetConnType()); Response.Write("OK"); Response.End(); } catch (Exception) { } } else { Response.Write("NO"); Response.End(); } }

上面的代码中,使用了 JavaScriptSerializer 类和 Dictionary 类来解析 JSON 数据,将 JSON 数据解析成字典,方便SQL语句的生成。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • PowerShell 2.0将pscustomobject转换成Json字符串

    PowerShell 2.0将pscustomobject转换成Json字符串

    2017-09-09 15:00

  • Django传递数据给JS

    Django传递数据给JS

    2017-09-09 14:02

  • Json Python Append List

    Json Python Append List

    2017-09-09 09:00

  • 压侧工具 ngrinder 学习(发送POST JSON请求)

    压侧工具 ngrinder 学习(发送POST JSON请求)

    2017-09-09 08:01

网友点评