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数据

2.1 接收的数据

{"PN":"W22CS56DM7-00","cuPNList":[{"cuPN":"90000000001"},{"cuPN":"90000000002"},{"cuPN":"90000000003"},{"cuPN":"9A4000000004"}]}
View Code

后台接收接口写法:

[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