通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
生活随笔
收集整理的這篇文章主要介紹了
通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#region 保存候選人數據/// <summary>/// 保存候選人數據/// </summary>/// <param name="entity"></param>/// <returns></returns>
[AdminAuthorize][ValidateInput(false)][AcceptVerbs(HttpVerbs.Post)]public ActionResult Save(matchjob.Domain.Candidate entity){if (entity.Id == 0){entity.CreateTime = DateTime.Now;this.CandidateManager.Save(entity);var json = Request.Form["candidateItemsJsonValue"];if (String.IsNullOrEmpty(json)){goto LABEL_END;}using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))){DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(matchjob.Web.UI.Models.TTTT_A));var a = (matchjob.Web.UI.Models.TTTT_A)serializer.ReadObject(ms);foreach (var p in a.Positions){var item = new matchjob.Domain.CandidateItem();item.Position = p.Name;item.Candidate = entity;item.CreateTime = DateTime.Now;item.UpdateTime = item.CreateTime;CandidateItemManager.Save(item);foreach (var u in p.Users){int Score, Experience, Interest, Salary;Int32.TryParse(u.Score, out Score);Int32.TryParse(u.Experience, out Experience);Int32.TryParse(u.Interest, out Interest);Int32.TryParse(u.Salary, out Salary);var item2 = new matchjob.Domain.CandidateUser();item2.CandidateItem = item;item2.Remark = u.Remark;item2.Score = Score;item2.UserInfo = new UserInfo();item2.UserInfo.Id = u.UserInfoId;item2.Experience = Experience;item2.Interest = Interest;item2.Salary = Salary;item2.CreateTime = DateTime.Now;item2.UpdateTime = item.CreateTime;CandidateUserManager.Save(item2);}}}LABEL_END:{}}else{var model = this.CandidateManager.Get(entity.Id);model.CompanyName = entity.CompanyName;model.ValidateCode = entity.ValidateCode;this.CandidateManager.Update(model);var json = Request.Form["candidateItemsJsonValue"];if (String.IsNullOrEmpty(json)){goto LABEL_DEL;}using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))){DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(matchjob.Web.UI.Models.TTTT_A));var a = serializer.ReadObject(ms) as matchjob.Web.UI.Models.TTTT_A;foreach (var p in a.Positions){var item = new matchjob.Domain.CandidateItem();var delUsers = new List<matchjob.Domain.CandidateUser>();item.Id = p.Id;item.Position = p.Name;item.Candidate = model;if (p.Id != 0){item = CandidateItemManager.Get(p.Id);item.Position = p.Name;}if (p.Id != 0){item.UpdateTime = DateTime.Now;CandidateItemManager.Update(item);delUsers = item.CandidateUsers.Where(CUser => !p.Users.Contains(new Models.TTTT_C { UserInfoId = CUser.UserInfo.Id }, new CandidateUserComparer())).ToList();}else{item.CreateTime = DateTime.Now;item.UpdateTime = item.CreateTime;CandidateItemManager.Save(item);}///更新和增加Userforeach (var u in p.Users){int Score, Experience, Interest, Salary;Int32.TryParse(u.Score, out Score);Int32.TryParse(u.Experience, out Experience);Int32.TryParse(u.Interest, out Interest);Int32.TryParse(u.Salary, out Salary);var item2 = new matchjob.Domain.CandidateUser();item2.CandidateItem = item;item2.Remark = u.Remark;item2.Score = Score;item2.UserInfo = new UserInfo();item2.UserInfo.Id = u.UserInfoId;item2.Id = u.Id;item2.Experience = Experience;item2.Interest = Interest;item2.Salary = Salary;if (u.Id != 0){item2 = CandidateUserManager.Get(u.Id);item2.CandidateItem = item;item2.Remark = u.Remark;item2.Score = Score;item2.Experience = Experience;item2.Interest = Interest;item2.Salary = Salary;}if (u.Id != 0){item2.UpdateTime = DateTime.Now;CandidateUserManager.Update(item2);}else{item2.CreateTime = DateTime.Now;item2.UpdateTime = item2.CreateTime;CandidateUserManager.Save(item2);}}///刪除Userforeach (var u in delUsers){foreach(var f in CandidateForwardUserManager.GetByCandidateUserId(u.Id)){CandidateForwardUserManager.Delete(f.Id);}CandidateUserManager.Delete(u.Id);}}}LABEL_DEL:///刪除已經移出的職位數據foreach (var itemid in Request.Form["candidateItemsDel"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)){var users = CandidateUserManager.GetsByCandidateItemId(Convert.ToInt64(itemid));for (int k = 0; k < users.Count; k++){///先刪除關聯對象foreach (var f in CandidateForwardUserManager.GetByCandidateUserId(users[k].Id)){CandidateForwardUserManager.Delete(f.Id);}CandidateUserManager.Delete(users[k].Id);}///先刪除關聯對象foreach (var f in CandidateForwardManager.GetByCandidateItemId(Convert.ToInt64(itemid))){CandidateForwardManager.Delete(f.Id);}CandidateItemManager.Delete(Convert.ToInt64(itemid));}}return Json(new { IsSuccess = true, Message = "保存成功" }, "text/plain", JsonRequestBehavior.AllowGet);}#endregion
public class TTTT_e{public TTTT_B[] Positions { get; set; }}public class TTTT_B{public long Id { get; set; }public String Name { get; set; }public TTTT_C[] Users { get; set; }}public class TTTT_C{public long Id { get; set; }public long UserInfoId { get; set; }public String Score { get; set; }public String Remark { get; set; }public String Name { get; set; }public String Experience { get; set; }public String Interest { get; set; }public String Salary { get; set; }}
public class TTTT_e{public TTTT_B[] Positions { get; set; }}public class TTTT_B{public long Id { get; set; }public String Name { get; set; }public TTTT_C[] Users { get; set; }}public class TTTT_C{public long Id { get; set; }public long UserInfoId { get; set; }public String Score { get; set; }public String Remark { get; set; }public String Name { get; set; }public String Experience { get; set; }public String Interest { get; set; }public String Salary { get; set; }}
?
??
轉載于:https://www.cnblogs.com/hznet/p/4331714.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的通过获取客户端Json数据字符串,反序列化为实体对象的一段代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对discuz的代码分析学习(三)mys
- 下一篇: 配置 Hdp 4 Window 中的一