asp.net服务器处理浏览器提交json格式的数据

概述

        服务器端对json格式数据的处理思路有两种,一种是通过别人写的类库进行转换,另一种是自己进行相应的转换,下面主要说的是自己进行的转换。


实现描述

       1、服务器端接受客户端传送过来的json格式的数据

       2、通过对接受json格式数据的字符串进行运算,得到相应的数组

       3、判断相应数据的有效性

       4、赋值给List集合对象

       5、保存到数据


具体实现

方式一

        1、下载Newtonsoft.Json.dll

        2、引用Newtonsoft.Json.dll

        3、添加命名空间

        4、json对象和json数组,以及相应获得数据的方式

        核心代码

//引入json命名空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;

//获得客户端提交的数据
string strData = context.Request.Params["strJson"].ToString();
//json数据整体为普通对象
JObject obj = (JObject)JsonConvert.DeserializeObject(strData);
string strName = obj["name"].ToString();
JObject objA = (JObject)obj["birthday"];
string strYear = objA["year"].ToString();
string strMonth = objA["month"].ToString();


方式二

private void InsertCity(HttpContext context) {
            try
            {
                //获得客户端提交的数据
                string strData = context.Request.Params["strJson"].ToString();

                //分割字符串
                char[] delimiterChars = { ‘{‘, ‘}‘, ‘[‘, ‘]‘, ‘"‘, ‘:‘, ‘,‘, ‘ ‘ };
                string[] data = strData.Split(delimiterChars);
                //删除为空的数组元素
                data = data.ToList().Where(x => !x.ToString().Equals("")).ToArray();
                List<UnitAdditionalResultsEntity> list = new List<UnitAdditionalResultsEntity>();

                //提取数组元素中的有用值
                for (int i = 3; i < data.Length - 3; i += 4)
                {
                    UnitAdditionalResultsEntity enUnitAdditionalResults = new UnitAdditionalResultsEntity();

                    enUnitAdditionalResults.UnitID = data[1];
                    enUnitAdditionalResults.AdditionalResultsName = data[i + 1];
                    enUnitAdditionalResults.AdditionalResults = data[i + 3];
                    enUnitAdditionalResults.YearTime = DateTime.Now.Year.ToString();

                    list.Add(enUnitAdditionalResults);
                }

                //定义B层对象
                CityAddBLL cityAddBLL = new CityAddBLL();

                //判断是否存在相同名称的奖惩
                DataSet ds = cityAddBLL.SelectAddNameById(DateTime.Now.Year.ToString(),data[1]);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string strAddName = ds.Tables[0].Rows[i][0].ToString();
                    foreach (var enUnitAdd in list)
                    {
                        if(enUnitAdd.AdditionalResultsName.ToString()==strAddName)
	                    {
                            context.Response.Write("false");
                            return;
	                    }      
                    }
                }

                //添加奖惩项目
                cityAddBLL.Add(list);
            }
            catch (Exception)
            {
                return;
            }
            
            //成功
            context.Response.Write("true");
        }

总结

       上篇博客和这一片博客是一个整体,描述了客户端向服务器段提交json格式数据,服务器段处理的过程,有兴趣的同学可以试试服务器端向客户端发送json格式数据,客户端接受的过程,其思路大同小异。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。