码迷,mamicode.com
首页 > Windows程序 > 详细

C# Json 解析,针对数字开头变量Json字符串转模型(Model)

时间:2021-07-05 16:41:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:smo   inf   div   main   serialize   tty   tom   pair   creat   

namespace 解析数字开头的变量JSON
{
    class Program
    {
        static void Main(string[] args)
        {
            string strJson = "{\"1st_attempt\":\"2021-02-09 16:32:15\",\"2nd_attempt\":\"2021-02-09 16:33:18\"}";
            var objModel = JsonDictionaryModel<ResModels>(strJson);
        }
 
        public class ResModels
        {
            public string _1st_attempt { get; set; }
            public string _2nd_attempt { get; set; }
        }


        public static T JsonDictionaryModel<T>(string strJson) 
        {
            Dictionary<string, object> ProductDetailList = JsonConvert.DeserializeObject<Dictionary<string, object>>(strJson);
            return ParseDictionaryToModel<T>(ProductDetailList);
        }
        public static T ParseDictionaryToModel<T>(Dictionary<string, object> dict)
        {
            T obj = default(T);
            obj = Activator.CreateInstance<T>();
            //根据Key值设定 Columns
            foreach (KeyValuePair<string, object> item in dict)
            {
                PropertyInfo prop = obj.GetType().GetProperty(item.Key);
                if (Equals(prop, null)) 
                {
                    prop = obj.GetType().GetProperty("_"+item.Key);
                }
                if (!Equals(item.Value,null))
                {
                    object value = item.Value;
                    //Nullable 获取Model类字段的真实类型
                    Type itemType = Nullable.GetUnderlyingType(prop.PropertyType) == null ? prop.PropertyType : Nullable.GetUnderlyingType(prop.PropertyType);
                    //根据Model类字段的真实类型进行转换
                    prop.SetValue(obj, Convert.ChangeType(value, itemType), null);
                }
            }
            return obj;
        }
    }
}

 https://www.cnblogs.com/volts0302/p/5195086.html

https://blog.csdn.net/weixin_33853794/article/details/92936314

C# Json 解析,针对数字开头变量Json字符串转模型(Model)

标签:smo   inf   div   main   serialize   tty   tom   pair   creat   

原文地址:https://www.cnblogs.com/LuoCore/p/14963339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!