Json的初步学习、接触

全局引用
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

using Jayrock.Json;

 

//此处引用的dll为最新版json60r1,所以调用的类和.netFramework2.0版本的有所不同

 //此处引用Jayrock.dll


首先创建一个对象如下:




        #region Json对象转换成DataTable

        public DataTable getDtFromJson(string json)
        {
            #region Json 字符串 转换为 DataTable数据集合
            /// <summary>
            /// Json 字符串 转换为 DataTable数据集合
            /// </summary>
            /// <param name="json"></param>
            /// <returns></returns>
            DataTable dataTable = new DataTable();
            //try
            //{
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
            if (arrayList.Count > 0)
            {
                foreach (Dictionary<string, object> dictionary in arrayList)
                {
                    if (dictionary.Keys.Count<string>() == 0)
                    {
                        //return;
                        continue;
                    }
                    if (dataTable.Columns.Count == 0)
                    {
                        foreach (string current in dictionary.Keys)
                        {
                            dataTable.Columns.Add(current, dictionary[current].GetType());
                        }
                    }
                    DataRow dataRow = dataTable.NewRow();
                    foreach (string current in dictionary.Keys)
                    {
                        dataRow[current] = dictionary[current];
                    }

                    dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
                }
            }
            #endregion
            return dataTable;
        }


        #endregion

            #region Newtonsoft.Json名称空间下的方法将DataTable序列化为json对象

            string sql = "SELECT * FROM twodictionery t";
            DataTable dt = new DataAccess.SqlRunner().ExecuteSQLFillTable(sql);
            string json = JsonConvert.SerializeObject(dt);

            #endregion

            #region Newtonsoft.Json名称空间下的方法将json反序列化为DataTable对象

            DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(this.hidjson.Value);

            #endregion

            #region Jayrock.Json转换json为model对象

            IList<UserInfo> item = new List<UserInfo>();

            JsonArray array = Jayrock.Json.Conversion.JsonConvert.Import(this.hidjson.Value) as JsonArray;

            UserInfo usr = null;

            foreach (JsonObject temp in array)
            {
                string GoodsNo = temp["GoodsNo"] + string.Empty;
                string GoodsName = temp["GoodsName"] + string.Empty;
                usr = new UserInfo();
                usr.Name = GoodsNo;
                usr.PassWord = GoodsName;
                usr.User = temp["Qty"] + string.Empty;
                usr.Age = temp["LocationCode"] + string.Empty;
                item.Add(usr);
            }

            #endregion

js转换Json对象为数组:

        function JsonToArray(jsonArray) {
            var json = eval(jsonArray);
            var str = "";
            for (var i = 0; i < json.length; i++) {
                str += json[i]["GoodsNo"].toString() + json[i]["GoodsName"].toString() + json[i]["Qty"].toString() + json[i]["LocationCode"].toString() + "\r\n";
            }
            alert(str);
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值