Asp.net中Json格式转换为DataTable

来源:互联网 发布:淘宝商户消失 编辑:程序博客网 时间:2024/05/21 18:35


        最近在做项目,有一个功能需要后台接收前端传输过来的json格式数据,然后保存到数据库。由于前端过来的数据可能会比较多,所以打算用Update方法,传入DataTable进行数据的保存,所以就需要把前端json数据转化为DataTable格式。好了,闲话不多说啦,下面是json个数转化为DataTable的代码:
        //项目中用到的json格式如下:

[{"id":"29","name":"AMOI15s-DVB","filesize":"8578064","duration":"15080",

"bitrate":"4500000","video_stream_type1":"2","audio_stream_type1":"4","active":"1"},

{"id":"28","name":"BENQ30s-DVB",,"filesize":"17012308","duration":"30080",

"bitrate":"4500000","video_stream_type1":"2","audio_stream_type1":"4","active":"1"},{"id":"1","name":"zhongqiu","filesize":"69341168","duration":"94680",

"bitrate":"5856128","video_stream_type1":"2","audio_stream_type1":"4","active":"1"}]

      要保存的DataTable格式:

public DataTable getDataTable()        {            DataTable dt = new DataTable();            dt.Columns.Add("channelid", typeof(System.Int32));            dt.Columns.Add("name", typeof(System.String));            dt.Columns.Add("filesize", typeof(System.Int32));            dt.Columns.Add("duration", typeof(System.Int32));            dt.Columns.Add("bitrate", typeof(System.Int32));            dt.Columns.Add("video_stream_type1", typeof(System.Int32));            dt.Columns.Add("audio_stream_type1", typeof(System.Int32));            dt.Columns.Add("active", typeof(System.Int32));            return dt;        }        /// <summary>        /// json转换为DataTable        /// </summary>        /// <param name="json">需要转化的json格式字符串</param>        /// <returns></returns>        public DataTable updateInfo(string json)        {            System.Web.Script.Serialization.JavaScriptSerializer jss =new System.Web.Script.Serialization.JavaScriptSerializer();            object[] obj = (object[])jss.DeserializeObject(json);            Dictionary<string, object> dic;            DataRow dr;            DataTable dt = getDataTable();            foreach (object _obj in obj)            {                dr = dt.NewRow();                dt.Rows.Add(dr);                dic = (Dictionary<string, object>)_obj;                dr["channelid"] = dic["channelid"];                dr["name"] = dic["name"];                dr["filesize"] = dic["filesize"];                dr["duration"] = dic["duration"];                dr["bitrate"] = dic["bitrate"];                dr["video_stream_type1"] = dic["video_stream_type1"];                dr["audio_stream_type1"] = dic["audio_stream_type1"];                dr["active"] = dic["active"];            }            return dt;        }