C#操作Json数据
JSON是现今各语言实现数据交互应用最广泛的一种格式,在于Xml的比较中,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽。
本文采用的是Newtonsoft.Json插件类库提供的JsonConvert操作类实现
下面附上Json操作类的源码
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace SP.Studio.Json { /// <summary> /// Json操作类 /// Author:Jacky /// </summary> public static class JsonAgent { /// <summary> /// 把json格式的单一对象转换成为哈希表 /// </summary> public static Hashtable GetJObject(string json) { Hashtable ht = new Hashtable(); try { JObject obj = (JObject)JsonConvert.DeserializeObject(json); foreach (KeyValuePair<string, JToken> keyValue in obj) { ht.Add(keyValue.Key, keyValue.Value); } } catch (Exception ex) { ht.Add("Exception", ex.Message); } return ht; } /// <summary> /// 把一个json数组对象转化成为hashlist /// </summary> public static Hashtable[] GetJList(string json) { Hashtable[] list; try { JArray obj = (JArray)JsonConvert.DeserializeObject(json); list = new Hashtable[obj.Count]; for (int i = 0; i < list.Length; i++) { list[i] = new Hashtable(); foreach (KeyValuePair<string, JToken> keyValue in (JObject)obj[i]) { list[i].Add(keyValue.Key, keyValue.Value); } } } catch (Exception ex) { list = null; } return list; } /// <summary> /// 将Json字符串转化为实体对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="json"></param> /// <returns></returns> public static T DeserializeObject<T>(string json) { return JsonConvert.DeserializeObject<T>(json); } } }
调用方式跟上一篇操作Xml的差不多
PS:扫描下方二维码或点击链接,加入QQ群