我有一个API,从body接收JSON,它是从一些WebUI发送的。
[Route("api/[controller]")]
[ApiController]
public class MyController : ControllerBase
{
public IActionResult Create([FromBody] MyModel request)
{
MyModel newRecord = new();
try
{
newRecord.Id = null;
newRecord.Date = request.Date;
newRecord.Name = request.Name;
}
catch (Exception e)
{
return StatusCode(400, $"Error: {e.Message}");
}
return Ok(newRecord);
}
}
但是请求
不是常数。它随着发展而变化。好的,我知道我必须将MyModel
与request
匹配,才能在Body中处理JSON。但由于许多变化,它产生了太多的工作。
有没有解决方案,这样我就可以接收uknown JSON对象并在controler内部解析它?
比如,有没有诀窍,让我可以写
public IActionResult Create([FromBody] var request)
还是类似的?
系统。文本。Json有一个名为JsonElement的类,可以用来将任何JSON绑定到它。
[HttpPost]
public IActionResult Create([FromBody] JsonElement jsonElement)
{
// Get a property
var aJsonProperty = jsonElement.GetProperty("aJsonPropertyName").GetString();
// Deserialize it to a specific type
var specificType = jsonElement.Deserialize<SpecificType>();
return NoContent();
}