• 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
  • 相关阅读:
    Ajax缓存的几种处理方式
    Day--1--网络协议
    Day4--js--递归各种大法渡难关
    你以为的BUG--BFC给你解决!
    Day3--js--可恶之变量声明提升大法.。。
    Day2--js--烧脑睿智循环的练习题
    ERwin创建逻辑模型
    ERwin入门
    Oracle存储过程由例子到理论
    oracle存储过程
  • 原文地址:https://www.cnblogs.com/Depingblogs/p/15043508.html
Copyright © 2020-2023  润新知