栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

使用Newtonsoft.NET将JSON数组转化成C#匿名类集合

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Newtonsoft.NET将JSON数组转化成C#匿名类集合

如何使用Newtonsoft.NET将JSON数组转化成C#匿名类集合?

使用Newtonsoft.NET将JSON数组转化成C#匿名类集合

			var url = "";
            var patientMsg = await httpClient.
            GetStringAsync($"{url}?BingQuDM=1");
            //1.转义后的Json 字符串
            patientMsg = "{"Rows":[{"DeptCode":"1001","BedNum":"001","PatientName":"卞肇琪","PatientSex":"女","PatientAge":22,"NursingGrade":"三级护理","DietAndRisk":"流性食物/留置导尿/记尿量","TempBaseId":null,"TempStickId":null,"HBRId":null,"InfusionId":null,"DropRate":null,"Temperature":null,"HeartRate":null}]}";
           //2.按照接口请求过来的Json字符串格式来声明的一个匿名对象
            var patientAnonymous = new { Rows = new[] { 
            new { BingRenZYID = "", BingRenID = "", 
            ChuangWeiHao = "", XingMing = "", XingBie = "",
             NianLing = "", HuLiDJ = "", RuYuanSJ = "", 
             ZhuYuanCS = "", ChuYuanSJ = "",
              Description="", MattressNo="" } } };
            //3.利用DeserializeAnonymousType方法
            //把Json字符串转成匿名类型的集合
            var patientList = JsonConvert.DeserializeAnonymousType(patientMsg,
             patientAnonymous).Rows.ToList();
            //4.可以不看,有需要可以看 把匿名对象的集合通过反射转为dynamic 的集合
            // 是因为下面我有需要对这个匿名对象集合的子项进行赋值的操作,
            //匿名对象的属性本身不支持赋值的操作,所以把它转为dynamic类型的
            List set = new List();
            foreach (var p in patientList)
            {
              var pros=  p.GetType().GetProperties(BindingFlags.Public
               | BindingFlags.Instance);
                var d = new ExpandoObject();
                foreach (var ps in pros)
                {
                    //eg:d.BingRenID = ps.BingRenID;
                    (d as IDictionary)
                    .Add(ps.Name, ps.GetValue(p, null));
                }
                set.Add(d);
            }
            
            
//第二种 直接转为dynamic类型的 因为是动态类型 所以vs 没有智能提示
            string hj = "{"Rows":[{"DeptCode":"1001","BedNum":"001","PatientName":"卞肇琪","PatientSex":"女","PatientAge":22,"NursingGrade":"三级护理","DietAndRisk":"流性食物/留置导尿/记尿量","TempBaseId":null,"TempStickId":null,"HBRId":null,"InfusionId":null,"DropRate":null,"Temperature":null,"HeartRate":null},{"DeptCode":"1001","BedNum":"001","PatientName":"卞肇琪","PatientSex":"女","PatientAge":22,"NursingGrade":"三级护理","DietAndRisk":"流性食物/留置导尿/记尿量","TempBaseId":null,"TempStickId":null,"HBRId":null,"InfusionId":null,"DropRate":null,"Temperature":null,"HeartRate":null}]}";
            dynamic json = Newtonsoft.Json.Linq.JToken.Parse(hj) as dynamic;
            foreach (var item in json)
            {
                Console.WriteLine($"count:{item.PatientName},no:{item.PatientAge}");
            }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906275.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号