通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过获取客户端Json数据字符串,反序列化为实体对象的一段代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5240字,纯文字阅读大概需要8分钟。
内容图文
![通过获取客户端Json数据字符串,反序列化为实体对象的一段代码](/upload/InfoBanner/zyjiaocheng/1053/29b460438a43476c8df090b899d34b88.jpg)
#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(newchar[] { ‘,‘ }, 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; } } publicclass TTTT_B { publiclong Id { get; set; } public String Name { get; set; } public TTTT_C[] Users { get; set; } } publicclass TTTT_C { publiclong Id { get; set; } publiclong 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; } }
原文:http://www.cnblogs.com/hznet/p/4331714.html
内容总结
以上是互联网集市为您收集整理的通过获取客户端Json数据字符串,反序列化为实体对象的一段代码全部内容,希望文章能够帮你解决通过获取客户端Json数据字符串,反序列化为实体对象的一段代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。