您的位置:首页 > Web前端 > JavaScript

Json格式字符串转为对象源码

2016-04-08 14:15 441 查看
添加引用:

using System.Web.Script.Serialization;

转换类:

    public class JsonObject

    {

        public JsonObject()

        {

        }

        /// <summary>

        /// 用Json字符串初始化Json对象

        /// </summary>

        /// <param name="json">要转换为Json对象的字符串</param>

        public JsonObject(string json)

        {

            var js = new JavaScriptSerializer();

            Value = js.DeserializeObject(json);

        }

        /// <summary>

        /// 解析JSON字串

        /// </summary>

        public static JsonObject Parse(string json)

        {

            var js = new JavaScriptSerializer();

            object obj = js.DeserializeObject(json);

            return new JsonObject()

            {

                Value = obj

            };

        }

        /// <summary>

        /// 取对象的属性

        /// </summary>

        public JsonObject this[string key]

        {

            get

            {

                var dict = this.Value as Dictionary<string, object>;

                if (dict != null && dict.ContainsKey(key))

                {

                    return new JsonObject { Value = dict[key] };

                }

                return new JsonObject();

            }

        }

        /// <summary>

        /// 取数组

        /// </summary>

        public JsonObject this[int index]

        {

            get

            {

                var array = this.Value as object[];

                if (array != null && array.Length > index)

                {

                    return new JsonObject { Value = array[index] };

                }

                return new JsonObject();

            }

        }

        /// <summary>

        /// 将值以希望类型取出

        /// </summary>

        public T GetValue<T>()

        {

            return (T)Convert.ChangeType(Value, typeof(T));

        }

        /// <summary>

        /// 取出字串类型的值

        /// </summary>

        public string Text()

        {

            return Convert.ToString(Value);

        }

        /// <summary>

        /// 取出数值

        /// </summary>

        public double Number()

        {

            return Convert.ToDouble(Value);

        }

        /// <summary>

        /// 取出整型

        /// </summary>

        public int Integer()

        {

            return Convert.ToInt32(Value);

        }

        /// <summary>

        /// 取出布尔型

        /// </summary>

        public bool Boolean()

        {

            return Convert.ToBoolean(Value);

        }

        /// <summary>

        /// 值

        /// </summary>

        public object Value

        {

            get;

            private set;

        }

        /// <summary>

        /// 如果是数组返回数组长度

        /// </summary>

        public int Length

        {

            get

            {

                var array = this.Value as object[];

                if (array != null)

                {

                    return array.Length;

                }

                return 0;

            }

        }

        /// <summary>

        /// DataTable 对象 转换为Json 字符串

        /// </summary>

        /// <param name="dt"></param>

        /// <returns></returns>

        public string ToJson(DataTable dt)

        {

            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();

            javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值

            ArrayList arrayList = new ArrayList();

            foreach (DataRow dataRow in dt.Rows)

            {

                Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合

                foreach (DataColumn dataColumn in dt.Columns)

                {

                    dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);

                }

                arrayList.Add(dictionary); //ArrayList集合中添加键值

            }

            return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串

        }

        public string ToJson(DataSet dataSet)

        {

            string jsonString = "{";

            foreach (DataTable table in dataSet.Tables)

            {

                jsonString += "\"" + table.TableName + "\":" + ToJson(table) + ",";

            }

            jsonString = jsonString.TrimEnd(',');

            return jsonString + "}";

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json object