zoukankan      html  css  js  c++  java
  • Json互转

        /// <summary>
        /// 将 JSON 转为对象
        /// </summary>
        /// <typeparam name="T">将要序列化的对象作为泛型参数</typeparam>
        /// <param name="jsonStr">JSON 字符串</param>
        /// <param name="type">要序列化的对象 Type</param>
        /// <returns>返回对象</returns>
        public static T JsonToObject<T>(string jsonStr, Type type)
        {//引用自:using System.Runtime.Serialization.Json;   类库没有
    //实例化类 (要序列化的类型) DataContractJsonSerializer json = new DataContractJsonSerializer(type); using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr.Replace("", @"")))) { try { T tt = (T)json.ReadObject(stream); return tt; } catch { throw new Exception("反序列化失败,请检查所提供的序列化内容和类型..."); } } }
        /// <summary>
        /// json转集合
        /// </summary>
        /// <typeparam name="T">泛型对象</typeparam>
        /// <param name="json">json字符串</param>
        /// <param name="t">转化类型</param>
        /// <returns>集合</returns>
        public static List<T> Json2Obj<T>(string  json, Type t)
        {
            List<T> list = new List<T>();
            try
            {
                System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                {
    
                     T tt =(T)serializer.ReadObject(ms);
                     list.Add(tt);
                     return list;
                }
            }
            catch
            {
                return null;
            }
        }
    
    //对象转集合   引入 Newtonsoft.Json
    ReturnData  rd =  JsonConvert.DeserializeObject<ReturnData>(jason,type);

      

        /// <summary>
        /// 对象转换为Json
        /// </summary>
        /// <param name="en"></param>
        /// <returns></returns>
        public string GetJsonObj(UserLogins use)
        {
    
            System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(use.GetType());
    
            System.IO.MemoryStream stra = new System.IO.MemoryStream();
    
            ser.WriteObject(stra, use);
    
            byte[] bute = new byte[stra.Length];
            stra.Position = 0;
            stra.Read(bute, 0, (int)stra.Length);
            string BodyJson = Encoding.UTF8.GetString(bute);
             return BodyJson ;
        }
    

      

      

        /// <summary>
        /// 对象转为Json数组
        /// </summary>
        /// <param name="dic"></param>
        /// <returns></returns>
        private string GetToJson(object dic)
        {
            //实例化JavaScriptSerializer类的新实例
            System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
            try
            {
                //将对象序列化为json数据
                string json = jss.Serialize(dic);
                 return json;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
    
        }
    

      

  • 相关阅读:
    【NOI1999、LOJ#10019】生日蛋糕(搜索、最优化剪枝、可行性剪枝)
    【NOI2016】区间
    【CodeForces688A】Opponents
    「LOJ10150」括号配对
    HDU6444(子段和、分情况比较)
    牛客练习赛41E(球的体积并)
    Codeforces 1154G(枚举)
    POJ1830(异或高斯消元)
    Codeforces 1114F(欧拉函数、线段树)
    牛客小白月赛13 G(双向搜索)
  • 原文地址:https://www.cnblogs.com/Evaniko/p/3779844.html
Copyright © 2011-2022 走看看