c# 生成json字符串和解析json字符串处理

时间:2021-07-22
本文章向大家介绍c# 生成json字符串和解析json字符串处理,主要包括c# 生成json字符串和解析json字符串处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一.c# 生成json字符串

1.1  datatable生成json字符串

[HttpGet]
        [Route("api/QueryPlasmaInfo")]
        public HttpResponseMessage QueryPlasmaInfo(string project)
        {
            project = project.Trim();
            JsonData jd = new JsonData(); 
            DataTable dt = checkInplanservice.GetPlasmaInfoTable(project); //OBJ转化成JSON
            //var datajson = JsonConvert.SerializeObject(new{employees=data});  //返回实体类json数
            //写法1
            string json = JsonConvert.SerializeObject(dt);
            var datajson = JsonConvert.SerializeObject(new { Pro=project, PlasmaInfo = json }); //返回匿名类json数
            //写法2
            var v = new
            {
                Pro = project,
                PlasmaInfo = json
            };
            var datajson2 = JsonConvert.SerializeObject(v);
            
            return new HttpResponseMessage()
            {
                Content = new StringContent(datajson + datajson2, Encoding.UTF8, "application/json"),
            }; 
        }
View Code

结果:

{"Pro":"W10IU80AP2-00","PlasmaInfo":"[{\"MiProject\":\"W10IU80AP2-00\",\"FgProject\":\"W10IU80AP2\",\"MiCustName\":\"Foxconn Tianjin(FOXCONN ODM)\",\"floors\":\"10\",\"MiConfirmDate\":\"2021-07-01T17:55:04\",\"vdpn\":\"IT-170GRA1TC\"}]"}{"Pro":"W10IU80AP2-00","PlasmaInfo":"[{\"MiProject\":\"W10IU80AP2-00\",\"FgProject\":\"W10IU80AP2\",\"MiCustName\":\"Foxconn Tianjin(FOXCONN ODM)\",\"floors\":\"10\",\"MiConfirmDate\":\"2021-07-01T17:55:04\",\"vdpn\":\"IT-170GRA1TC\"}]"}
View Code

二.C#解析json数据

[HttpPost]
        [Route("api/GetLotCardMIMAFInfo")]
        public HttpResponseMessage GetLotCardMIMAFInfo()
        {
            var data = Request.Content.ReadAsStringAsync().Result; 
            var PNlist = "";
            JObject jsonObj = JObject.Parse(data);
            string PNno = jsonObj["PN"].ToString();
            JArray jsonAry = JArray.Parse(jsonObj["cuPNList"].ToString());
            JObject stu1Obj = JObject.Parse(jsonAry[0].ToString());
            string cuPN = stu1Obj["cuPN"].ToString();
            foreach (var ss in jsonAry)  //查找某个字段与值
            {
                PNlist = PNlist + ss["cuPN"].ToString() + ","; // ((JObject)ss)["cuPN"];  // JObject.Parse(jsonAry[0].ToString());
            } 
            JsonData jd = new JsonData();
            DataTable dt = checkInplanservice.GettLotCardInfoTable(PNno);
            DataTable dtMAF = checkInplanservice.GettLotCardMAFInfoTable(PNlist);
            //OBJ转化成JSON
            jd.Status = HandleStatus.Success;
            if (dt.Rows.Count == 0)
            {
                jd.Status = HandleStatus.Fail;
                jd.Msg = "无数据";
            }
            else
            {
                jd.Data = new
                {
                    cuLayerType = dt.Rows[0]["LayerLevel"],
                    cuCustomer = dt.Rows[0]["MiCustPn"],
                    cuCustomerName = dt.Rows[0]["MiCustName"],
                    cuQRCustomerPN = "",
                    cuQRCustomerPNVersion = "",
                    cuPNLOrigin = dt.Rows[0]["lvdr"],
                    cuSize = dt.Rows[0]["Value"],
                    cuCurrSize = dt.Rows[0]["MiSetArea"],
                    cuHSFRequirement = dt.Rows[0]["AttrCode"],
                    cuFinalThickness = dt.Rows[0]["cuFinalThickness"],
                    cuPNList = dtMAF
                };
            }
            string msgAll = JsonConvert.SerializeObject(jd);
            return JsonResult(msgAll);

        }
View Code

原文地址:https://www.cnblogs.com/Depingblogs/p/15043508.html