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群

一群用代码改变世界的疯子

猜你喜欢

转载自www.cnblogs.com/ydcnblog/p/9258682.html