1. 程式人生 > >ASP.NET2.0 Newtonsoft.Json 操作類分享

ASP.NET2.0 Newtonsoft.Json 操作類分享

json轉換 json.net net 解析 lin att 現在 比較 highlight

JSON 是現在比較流行的數據交互格式,NET3.0+有自帶類處理JSON,2.0的話需要借助Newtonsoft.Json來完成,不然自己寫的話,很麻煩。

網上搜索下載 Newtonsoft.Json.Net20.dll (沒有加群找群主拿),添加引用到項目當中。

/*添加引用*/
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;

        /* 序列化,返回JSON格式的字符串 */
        public static string DateTimeFormat = "yyyy‘-‘MM‘-‘dd‘T‘HH‘:‘mm‘:‘ss";
        public static string Encode(object o)
        {
            if (o == null || o.ToString() == "null") return null;

            if (o != null && (o.GetType() == typeof(String) || o.GetType() == typeof(string)))
            {
                return o.ToString();
            }
            IsoDateTimeConverter dt = new IsoDateTimeConverter();
            dt.DateTimeFormat = DateTimeFormat;
            return JsonConvert.SerializeObject(o, dt);
        }

        /* 反序列化,返回Object對象,可轉指定類型 */
        public static object Decode(string json, Type type)
        {
            if (json == "") return null;
            try { return JsonConvert.DeserializeObject(json, type); }
            catch { return null; }
        }

使用說明:

/* 1、當為普通的JSON對象,沒有數組,沒有嵌套時 */
Dictionary<string, object> json = Decode("json字符串", typeof(Dictionary<string, object>)) as Dictionary<string, object>;

/* 2、當為JSON數組對象時 */
List<Dictionary<string, object>> attrs = Decode("json數組", typeof(List<Dictionary<string, object>>)) as List<Dictionary<string, object>>;

/* 3、當為多重嵌套時 
先Dictionary<string, object>獲取第一層,再循環指定KEY獲取數組解析
就是1 2兩種方式慢慢解析出來
*/

當然,比較有針對性的話,也可以自己寫MODEL類指定JSON轉換。

以上基本能滿足大部份JSON操作請求。

ASP.NET2.0 Newtonsoft.Json 操作類分享