【发布时间】:2021-01-06 07:39:31
【问题描述】:
我该如何解决这个问题(序列化/反序列化 JSON 数组并从 sql server 存储和读取)? 谢谢
我创建了连接到 Angular 项目的 asp.net 核心 api,当我想要发布包含 json 数组(成分)的 json 时出现问题:
{ "RecepieName": "3222",
"Ingredient": [ { "ingredientName": "43243", "value": "33", "measure": "" },
{ "ingredientName": "565" , "value": "3", "measure": "" }],
"CookingTime": 3,
"Level": "advance",
"ServingPerson": 3,
"RecepieAbstration": "good food",
"RecepieText": "",
"CreateDate": "2021-01-04T12:37:51.948",
"ModifiedDate": "2021-01-04T12:37:51.948" }
当我使用邮递员进行测试时,我遇到了这个错误:
您可以在控制器中看到我的模型、dto 和操作帖子:
型号:
public class Recepie
{
[Key]
public int ID { get; set; }
[Required]
public string RecepieName { get; set; }
[Required]
public string Ingredient { get; set; } // include ingredientName / value / measure array
[Required]
public int CookingTime { get; set; }
[Required]
public string Level { get; set; }
[Required]
public int ServingPerson { get; set; }
[Required]
public string RecepieAbstration { get; set; }
[Required]
public string RecepieText { get; set; }
[Required]
public string NutritionalInformation { get; set; }
[Required]
public string Tags { get; set; }
public DateTime CreateDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
DTO : RecepieCreateDto
public class RecepieCreateDto
{
public string RecepieName { get; set; }
//public int MentorID { get; set; }
public string Ingredient { get; set; }
public int CookingTime { get; set; }
public string Level { get; set; }
public int ServingPerson { get; set; }
public string RecepieAbstration { get; set; }
public string RecepieText { get; set; }
public string Tags { get; set; }
public DateTime CreateDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
动作帖:
//Post api/recepie
[HttpPost]
public ActionResult <RecepieReadDto> CreateRecepie(RecepieCreateDto recepieCreateDto)
{
var recepieModel = _mapper.Map<Recepie>(recepieCreateDto);
_repository.CreateRecepieObject(recepieModel);
_repository.SaveChange();
var recepieReadDto = _mapper.Map<RecepieReadDto>(recepieModel);
return CreatedAtRoute(nameof(GetRecepieByID), new { Id = recepieReadDto.ID }, recepieReadDto);
// return Ok(recepieModel);
}
【问题讨论】: