Entity framework core 如何接受具有更多层的JSON
我得到了这个JSON,我正试图用一个模型来接受它,但我似乎不知道我将如何接受双层JSON 我只是不断得到无效数据,所以我的模型应该是什么样子 JSON 模型 控制器Entity framework core 如何接受具有更多层的JSON,entity-framework-core,Entity Framework Core,我得到了这个JSON,我正试图用一个模型来接受它,但我似乎不知道我将如何接受双层JSON 我只是不断得到无效数据,所以我的模型应该是什么样子 JSON 模型 控制器 [HttpPost] public async Task<IActionResult> FlowMessageFromGateway([FromBody] FlowDTO flowDTO) { if (!ModelState.IsValid)
[HttpPost]
public async Task<IActionResult> FlowMessageFromGateway([FromBody] FlowDTO flowDTO)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok(flowDTO);
}
}
问题在于如何发送数据 因为您给它一个名称“Flow”,所以在反序列化时,它希望数据具有名为Flow的属性 您应该可以通过邮递员发送以下邮件来实现此目的:
{
"MAC": "04916206f005",
"DateTime": "2015-01-01 23:59:50",
"Data": [0,0,0,0,0,0,0,0,0]
}
编辑
如果您希望此数据正常工作:
{
"MAC": "04916206f005",
"DateTime": "2015-01-01 23:59:50",
"Data": [{
"Flow": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}]
}
然后,您需要执行以下操作:
1) 保持流动的物体
public class Data
{
public List<int> Flow {get; set;}
}
公共类数据
{
公共列表流{get;set;}
}
2) 更新原始模型以使用数据类
public class FlowDTO
{
[Required]
public string MacAdr { get; set; }
public DateTime DateTime { get; set; }
public List<Data> Data { get; set; }
}
公共类流到
{
[必需]
公共字符串MacAdr{get;set;}
公共日期时间日期时间{get;set;}
公共列表数据{get;set;}
}
您是否收到错误消息说数据无效?你能分享这个错误消息吗?你是如何将数据发送到控制器的?添加了错误,我使用Postman和swagger来测试它。我假设这是c#?但是没有办法让嵌套的JSON工作吗?通过某种方式改变模型?这是可行的,当然我只需要制作一系列新模型。谢谢你给我指引了正确的方向。没问题,很乐意帮忙:)
{
"MAC": "04916206f005",
"DateTime": "2015-01-01 23:59:50",
"Data": [{
"Flow": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}]
}
public class Data
{
public List<int> Flow {get; set;}
}
public class FlowDTO
{
[Required]
public string MacAdr { get; set; }
public DateTime DateTime { get; set; }
public List<Data> Data { get; set; }
}