public static class JsonConvertHelper
    {
        private static JsonSerializerSettings _jsonSerializerSettings;

        static JsonConvertHelper()
        {
            _jsonSerializerSettings = new JsonSerializerSettings();
            _jsonSerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        }

        public static string Obj2Json<T>(this T obj, Encoding encoding = null)
        {
            string result = string.Empty;
            if (obj == null)
            {
                return result;
            }
            try
            {
                result = JsonConvert.SerializeObject(obj, _jsonSerializerSettings);
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("Obj2Json error:" + ex.Message + "_" + ex.StackTrace, "");
                return result;
            }
        }

        public static T Json2Obj<T>(this string json)
        {
            T result = default(T);
            try
            {
                result = JsonConvert.DeserializeObject<T>(json);
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("Json2Obj error:" + ex.Message + "_" + ex.StackTrace, "");
                DebugHelper.Error(ex);
                DebugHelper.Error("Json2Obj : 解析数据异常:{0}", json);
                return result;
            }
        }

        public static object Json2Obj(this string json, Type type)
        {
            object result = null;
            try
            {
                result = JsonConvert.DeserializeObject(json, type);
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("Json2Obj error:" + ex.Message + "_" + ex.StackTrace, "");
                DebugHelper.Error(ex);
                DebugHelper.Error("Json2Obj : 解析数据异常:{0}", json);
                return result;
            }
        }

        public static T JsonToEntity<T>(this string json, string key = "Records")
        {
            T result = default(T);
            if (string.IsNullOrEmpty(json))
            {
                return result;
            }
            try
            {
                result = JsonConvert.DeserializeObject<T>(((JArray)JObject.Parse(json)[key]).ToString());
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("JsonToEntity error:" + ex.Message + "_" + ex.StackTrace, "");
                return result;
            }
        }

        public static string EntityToJson<T>(T entity, string formID)
        {
            string result = string.Empty;
            if (entity == null)
            {
                return result;
            }
            try
            {
                string value = JsonConvert.SerializeObject(entity);
                result = new JObject
                {
                    {
                        "FormID",
                        (JToken)formID
                    },
                    {
                        "Records",
                        (JToken)value
                    }
                }.ToString();
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("EntityToJson error:" + ex.Message + "_" + ex.StackTrace, "");
                return result;
            }
        }

        public static object GetValueBykey(this string json, string key)
        {
            object result = null;
            try
            {
                JsonConvert.DeserializeObject<Dictionary<string, object>>(json).TryGetValue(key, out result);
                return result;
            }
            catch (Exception ex)
            {
                DebugViewHelper.OutPutScreen("GetValueBykey error:" + ex.Message + "_" + ex.StackTrace, "");
                return result;
            }
        }
    }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。