ASP.NET2.0 Newtonsoft.Json 操作類分享
阿新 • • 發佈:2018-06-10
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 操作類分享