• 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
  • 相关阅读:
    如果网站文字不让复制怎么办,谷歌浏览器
    Mac 微信双开
    git 线上一不小心拉取代码了,如何恢复
    php 验证港澳台身份证
    把照片弄成50k以内
    Gson序列化时排除字段
    实战Springboot内置Tomcat配置调优
    svg图标爽使用
    laravel的post请求分页数据
    php的isset函数相关问题
  • 原文地址:https://www.cnblogs.com/Depingblogs/p/15043508.html
Copyright © 2020-2023  润新知