/// <summary> /// 将字符串转换成学生答题结果对象 /// </summary> /// <param name="json"></param> /// <returns></returns> private StudentAnswerBase TranslateAnswer(string json) { JObject o = JsonConvert.DeserializeObject(json) as JObject; StudentAnswerBase data = null; switch ((SubjectTypeEnum)Convert.ToInt32(o["type"])) { case SubjectTypeEnum.择题: data = new StuSelectAnswer() { Type = (int)SubjectTypeEnum.择题, Answers = JsonConvert.DeserializeObject <List <int> >(o["sanw"].ToString()), OptionSequences = JsonConvert.DeserializeObject <List <int> >(o["sops"].ToString()) }; break; case SubjectTypeEnum.判断题: data = new StuTrueFalseAnswer() { Type = (int)SubjectTypeEnum.判断题, Answer = Convert.ToInt32(o["sanw"]) }; break; case SubjectTypeEnum.填空题: data = new StuBlankAnswer() { Type = (int)SubjectTypeEnum.填空题, Answers = JsonConvert.DeserializeObject <List <BlankAnswerItem> >(o["sanw"].ToString()) }; break; case SubjectTypeEnum.择填空: data = new StuSelectBlankAnswer() { Type = (int)SubjectTypeEnum.择填空, Answers = JsonConvert.DeserializeObject <List <int[]> >(o["sanw"].ToString()), OptionSequences = JsonConvert.DeserializeObject <List <int> >(o["sops"].ToString()) }; break; case SubjectTypeEnum.连线题: data = new StuMatchAnswer() { Type = (int)SubjectTypeEnum.连线题, Answers = JsonConvert.DeserializeObject <List <int[]> >(o["sanw"].ToString()), LeftOptionSequences = JsonConvert.DeserializeObject <List <int> >(o["slos"].ToString()), RightOptionSequences = JsonConvert.DeserializeObject <List <int> >(o["sros"].ToString()) }; break; case SubjectTypeEnum.主观题: data = new StuFreeAnswer() { Type = (int)SubjectTypeEnum.主观题, Answer = o["sanw"].ToString() }; break; case SubjectTypeEnum.圈点批注标色: data = new StuMarkColorAnswer() { Type = (int)SubjectTypeEnum.圈点批注标色, Answers = JsonConvert.DeserializeObject <List <int[]> >(o["sanw"].ToString()) }; break; case SubjectTypeEnum.圈点批注断句: data = new StuMarkCutAnswer() { Type = (int)SubjectTypeEnum.圈点批注断句, Answers = JsonConvert.DeserializeObject <List <int> >(o["sanw"].ToString()) }; break; } if (data != null) { data.SubjectId = Convert.ToInt32(o["sbId"]); data.ResultStars = Convert.ToInt32(o["rtar"]); data.SubjectCoins = Convert.ToInt32(o["scon"]); data.ResultCoins = Convert.ToInt32(o["rcon"]); data.KnowledgeId = Convert.ToInt32(o["kdge"]); } return(data); }
public Yw_StudentStudyTaskAnswerExt MakeTranslator(Yw_StudentStudyTaskAnswer entity) { Yw_StudentStudyTaskAnswerExt realEntity = entity.ConvertTo <Yw_StudentStudyTaskAnswerExt>(); if (!string.IsNullOrEmpty(entity.Yta_StudentAnswer)) { realEntity.Yta_Answer_Obj = new StudentAnswerCard(); JObject jo = JsonConvert.DeserializeObject(entity.Yta_StudentAnswer) as JObject; realEntity.Yta_Answer_Obj.UseTime = Convert.ToInt32(jo["UTim"]); realEntity.Yta_Answer_Obj.SubmitTime = jo["STim"].ToString(); realEntity.Yta_Answer_Obj.TotalStars = (int)jo["EStar"]; realEntity.Yta_Answer_Obj.TotalCoins = (int)jo["TCoin"]; realEntity.Yta_Answer_Obj.Part = (int)jo["Part"]; string innerJson = jo["Anws"].ToString(); JArray items = JsonConvert.DeserializeObject(innerJson) as JArray; foreach (JObject o in items) { if ((int)o["Type"] == (int)SubjectTypeEnum.择题) { StuSelectAnswer an = JsonConvert.DeserializeObject <StuSelectAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.填空题) { StuBlankAnswer an = JsonConvert.DeserializeObject <StuBlankAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.判断题) { StuTrueFalseAnswer an = JsonConvert.DeserializeObject <StuTrueFalseAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.择填空) { StuSelectBlankAnswer an = JsonConvert.DeserializeObject <StuSelectBlankAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.连线题) { StuMatchAnswer an = JsonConvert.DeserializeObject <StuMatchAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.主观题) { StuFreeAnswer an = JsonConvert.DeserializeObject <StuFreeAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.圈点批注标色) { StuMarkColorAnswer an = JsonConvert.DeserializeObject <StuMarkColorAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } else if ((int)o["Type"] == (int)SubjectTypeEnum.圈点批注断句) { StuMarkCutAnswer an = JsonConvert.DeserializeObject <StuMarkCutAnswer>(o.ToString()); realEntity.Yta_Answer_Obj.AnswerCollection.Add(an); } } } return(realEntity); }