首先引用 解析類庫
解析類父類
示例
這裡 注意點 要傳json數組進來
[{
"鍵": [ { } ],
"鍵": [{ } ]
}]
要替換掉json內所有空格 Replace(" ","") ,Replace(Json, @"\r\n", "")
如果 json 鍵值對 傳進來的值中 含有 ',' 隔開的值 則 需用 其他符號 替代 否則 取值時 取不全!
public string ImportData(string Json) { StringBuilder sbStr = new StringBuilder(); CommonJsonModel model = new CommonJsonModel(Regex.Replace(Json, @"\r\n", "")); List<CommonJsonModel> lst = model.GetCollection(); foreach (CommonJsonModel item in lst) { #region string ImgList = item.GetValue("ImgList"); CommonJsonModel modelImgList = new CommonJsonModel(Regex.Replace(ImgList, @"\r\n", "")); List<CommonJsonModel> lstImgList = modelImgList.GetCollection(); List<string> sqlDelImgList = new List<string>(); List<string> sqlInserImgList = new List<string>(); foreach (CommonJsonModel itemImgList in lstImgList) { string ID = itemImgList.GetValue("ID");// if (ID != "0") { sqlDelImgList.Add(string.Format("DELETE FROM MR_Img WHERE AppID={0}",ID)); } string Img = itemImgList.GetValue("Img"); string Describe = itemImgList.GetValue("Describe"); string sqlInsertImg = string.Format("INSERT INTO MR_Img([FilePathe],[Small_FilePathe],[Describe],[AppID]) VALUES('{0}','{1}','{2}',{3})", Img, Img, Describe, ID); sqlInserImgList.Add(sqlInsertImg); } int ictDelImg = DBHelper.ExecuteSqlTran(sqlDelImgList); // int ictImg = DBHelper.ExecuteSqlTran(sqlInserImgList); #endregion #region string ExamineItem = item.GetValue("ExamineItem"); CommonJsonModel modelExamineItem = new CommonJsonModel(Regex.Replace(ExamineItem, @"\r\n", "")); List<CommonJsonModel> lstExamineItem = modelExamineItem.GetCollection(); List<string> sqlDelExamineItemList = new List<string>(); List<string> sqlInsExamineItemList = new List<string>(); foreach (CommonJsonModel itemExamineItem in lstExamineItem) { string ID = itemExamineItem.GetValue("ID"); if (ID != "0") { sqlDelExamineItemList.Add(string.Format("DELETE FROM MR_Check_Details where AppID={0}",ID)); } string ExamineID = itemExamineItem.GetValue("ExamineID"); string FloorList = itemExamineItem.GetValue("FloorList"); string Danger = itemExamineItem.GetValue("Danger"); string Imgs = itemExamineItem.GetValue("Imgs"); string NewImgs = ""; if (Imgs != "" || Imgs != "0") { string imgids = Imgs.Replace("&",","); string sqlQueryImgsID = string.Format("SELECT [ID] FROM MR_Img WHERE AppID IN({0})", imgids); DataTable dtImgsID = DBHelper.ExecuteDataTable(sqlQueryImgsID, CommandType.Text); if (dtImgsID != null && dtImgsID.Rows.Count > 0) { foreach (DataRow ImsIdRow in dtImgsID.Rows) { NewImgs = NewImgs + "," + ImsIdRow["ID"]; } } } string Item_ID = itemExamineItem.GetValue("Item_ID"); string Remarks = itemExamineItem.GetValue("Remarks"); string Refuse = itemExamineItem.GetValue("Refuse"); string RefuseName = itemExamineItem.GetValue("RefuseName"); string sqlInsCheck_Details = string.Format("INSERT INTO MR_Check_Details ([Item_ID],[Danger],[Complete_Time],[Imgs],[Remarks],[Refuse],[RefuseName],[ExamID],[FloorList],[AppID]) VALUES({0},{1},getdate(),'{2}','{3}',{4},'{5}',{6},'{7}',{8})", Item_ID, Danger, NewImgs.Trim(','), Remarks, Refuse, RefuseName, ExamineID, FloorList, ID); sqlInsExamineItemList.Add(sqlInsCheck_Details); } int ictdelExamineItemList = DBHelper.ExecuteSqlTran(sqlDelExamineItemList); int ictExamineItemList = DBHelper.ExecuteSqlTran(sqlInsExamineItemList); #endregion #region string BuildList = item.GetValue("BuildList"); CommonJsonModel modelBuildList = new CommonJsonModel(Regex.Replace(BuildList, @"\r\n", "")); List<CommonJsonModel> lstBuildList = modelBuildList.GetCollection(); List<string> sqlUpBuidList = new List<string>(); foreach (CommonJsonModel itemBuildList in lstBuildList) { string ID = itemBuildList.GetValue("ID"); string Name = itemBuildList.GetValue("Name"); string Contact = itemBuildList.GetValue("Contact"); string Mobile = itemBuildList.GetValue("Mobile"); string OwnerName = itemBuildList.GetValue("OwnerName"); string OwnerMobile = itemBuildList.GetValue("OwnerMobile"); string User_ID = itemBuildList.GetValue("User_ID"); string Doorplate = itemBuildList.GetValue("Doorplate"); string Address = itemBuildList.GetValue("Address"); string FloorNum = itemBuildList.GetValue("FloorNum"); string UpBuild = string.Format("UPDATE MR_Building SET [Name] ='{0}',[Contact] = '{1}',[Mobile] = '{2}',[OwnerName] = '{3}',[OwnerMobile] = '{4}',[User_ID] = {5},[Doorplate] = '{6}',[Address] ='{7}',[FloorNum] ={8} WHERE ID={9}", Name, Contact, Mobile, OwnerName, OwnerMobile, User_ID, Doorplate, Address, FloorNum, ID); sqlUpBuidList.Add(UpBuild); } int ictUpBuidList = DBHelper.ExecuteSqlTran(sqlUpBuidList); #endregion #region int ictBuildExamine = 0; string BuildExamine = item.GetValue("BuildExamine"); CommonJsonModel modelBuildExamine = new CommonJsonModel(Regex.Replace(BuildExamine, @"\r\n", "")); List<CommonJsonModel> lstBuildExamine = modelBuildExamine.GetCollection(); foreach (CommonJsonModel itemBuildExamine in lstBuildExamine) { string ID = itemBuildExamine.GetValue("ID"); string BID = itemBuildExamine.GetValue("BID"); string NewDanger = ""; string Danger = itemBuildExamine.GetValue("Danger"); if (Danger != "" || Danger != "0") { string DangerIds = Danger.Replace("&", ","); string sqlQBuidDanger = string.Format("SELECT ID FROM MR_Check_Details where AppID in ({0})", DangerIds); DataTable dtBuildDanger = DBHelper.ExecuteDataTable(sqlQBuidDanger, CommandType.Text); if (dtBuildDanger != null && dtBuildDanger.Rows.Count > 0) { foreach (DataRow BuildDangerRow in dtBuildDanger.Rows) { NewDanger = NewDanger + "," + BuildDangerRow["ID"]; } } } string RemarkType = itemBuildExamine.GetValue("RemarkType"); string Remark = itemBuildExamine.GetValue("Remark"); string Remark2 = itemBuildExamine.GetValue("Remark2"); string Complete_Time = itemBuildExamine.GetValue("Complete_Time"); string UserID = itemBuildExamine.GetValue("UserID"); ictBuildExamine += LxAddCheckBuild(BID, NewDanger.Trim(','), Remark, Remark2, Complete_Time, UserID); } #endregion #region string StreetList = item.GetValue("StreetList"); CommonJsonModel modelStreetList = new CommonJsonModel(Regex.Replace(StreetList, @"\r\n", "")); List<CommonJsonModel> lstStreetList = modelStreetList.GetCollection(); List<string> SqlUpSteetList = new List<string>(); foreach (CommonJsonModel itemStreetList in lstStreetList) { string ID = itemStreetList.GetValue("ID"); string Name = itemStreetList.GetValue("Name"); string Address = itemStreetList.GetValue("Address"); string Type = itemStreetList.GetValue("Type"); string Business = itemStreetList.GetValue("Business"); string Layer = itemStreetList.GetValue("Layer"); string Acreage = itemStreetList.GetValue("Acreage"); string Has_Business = itemStreetList.GetValue("Has_Business"); string Owner_Name = itemStreetList.GetValue("Owner_Name"); string Phone = itemStreetList.GetValue("Phone"); string Run_Name = itemStreetList.GetValue("Run_Name"); string Run_Phone = itemStreetList.GetValue("Run_Phone"); string Place_x = itemStreetList.GetValue("Place_x"); string place_y = itemStreetList.GetValue("place_y"); string UserID = itemStreetList.GetValue("UserID"); string Extinguisher_Num = itemStreetList.GetValue("Extinguisher_Num"); string Emergency_Num = itemStreetList.GetValue("Emergency_Num"); string Alertor_Num = itemStreetList.GetValue("Alertor_Num"); string UpSteet = string.Format("UPDATE MR_Street SET [Name] = '{0}',[Type] = {1},[Address] = '{2}',[Business] = '{3}' ,[Layer]='{4}',[Acreage] ={5},[Has_Business] ='{6}',[Owner_Name] = '{7}',[Phone] ='{8}',[Run_Name] = '{9}',[Run_Phone] = '{10}',[Place_x] = {11},[place_y] = '{12}',[UserID] = {13} WHERE Id={14}", Name, Type, Address, Business, Layer, Acreage, Has_Business, Owner_Name, Phone, Run_Name, Run_Phone, Place_x, place_y, UserID,ID); SqlUpSteetList.Add(UpSteet); string UpSteetDeal = string.Format("UPDATE MR_Street_Detail SET [Extinguisher_Num] = {0},[Emergency_Num] = {1} ,[Alertor_Num] ={2} WHERE SID={3}",Extinguisher_Num,Emergency_Num,Alertor_Num,ID); SqlUpSteetList.Add(UpSteetDeal); } int ictUpSteetList=DBHelper.ExecuteSqlTran(SqlUpSteetList); #endregion #region string StreetExamine = item.GetValue("StreetExamine"); CommonJsonModel modelStreetExamine = new CommonJsonModel(Regex.Replace(StreetExamine, @"\r\n", "")); List<CommonJsonModel> lstStreetExamine = modelStreetExamine.GetCollection(); int ictStreetExamine = 0; foreach (CommonJsonModel itemStreetExaminee in lstStreetExamine) { // string ID = itemStreetExaminee.GetValue("ID"); string SID = itemStreetExaminee.GetValue("SID"); string NewDanger = ""; string Danger = itemStreetExaminee.GetValue("Danger"); if (Danger != "" || Danger != "0") { string DangerIds = Danger.Replace("&", ","); string sqlQStreetDanger = string.Format("SELECT ID FROM MR_Check_Details where AppID in ({0})", DangerIds); DataTable dtStreetDanger = DBHelper.ExecuteDataTable(sqlQStreetDanger, CommandType.Text); if (dtStreetDanger != null && dtStreetDanger.Rows.Count > 0) { foreach (DataRow StreetDangerRow in dtStreetDanger.Rows) { NewDanger = NewDanger + "," + StreetDangerRow["ID"]; } } } string RemarkType = itemStreetExaminee.GetValue("RemarkType"); string Remark = itemStreetExaminee.GetValue("Remark"); string Remark2 = itemStreetExaminee.GetValue("Remark2"); string Complete_Time = itemStreetExaminee.GetValue("Complete_Time"); string UserID = itemStreetExaminee.GetValue("UserID"); ictStreetExamine+= LxAddCheckNew(SID, NewDanger.Trim(','), RemarkType, Remark, Remark2, Complete_Time, UserID); } #endregion } return ""; }