1. 程式人生 > 其它 >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