无法解析 JSON 参数
Can't parse JSON parameter
我正在使用 WebAPI 获取 POST 消息。 POST 消息的 body:
{"datetime":"2017-01-06T20:40:44.2401244Z","filename":"somefilename.csv","datasourcename":"MyDataSource","error":"The uploaded file has no tags."}
header 包含在 POST 中:
Content-type: application/json
我处理消息的操作方法:
[HttpPost]
public void SaveMessage([FromBody] string msg)
{
MyModel w = JsonConvert.DeserializeObject<MyModel>(msg);
db.MyModels.Add(w);
db.SaveChanges();
}
我的问题是如何对 JSON 进行编码以便解析它?我无法更改收到的消息。我可以在我的方法中做什么,以便我可以阅读它?现在msg
总是给我null
.
鉴于您无法控制正在发送的数据,那么按照评论中的建议,确保您的模型与 JSON
的所需对象模型相匹配
public class MyModel {
public DateTime datetime { get; set; }
public string filename { get; set; }
public string datasourcename { get; set; }
public string error { get; set; }
}
并利用 Web API 框架的模型绑定功能,让操作从请求主体绑定强类型模型。
[HttpPost]
public IHttpActionResult SaveMessage([FromBody] MyModel model) {
if(ModelState.IsValid) {
db.MyModels.Add(w);
if(db.SaveChanges() > 0)
return Ok();
}
return BadRequest();
}
如果保存消息有任何问题,操作将 return HTTP 状态代码 400 错误请求,否则它将 return HTTP 状态代码 200 正常。
我正在使用 WebAPI 获取 POST 消息。 POST 消息的 body:
{"datetime":"2017-01-06T20:40:44.2401244Z","filename":"somefilename.csv","datasourcename":"MyDataSource","error":"The uploaded file has no tags."}
header 包含在 POST 中:
Content-type: application/json
我处理消息的操作方法: [HttpPost]
public void SaveMessage([FromBody] string msg)
{
MyModel w = JsonConvert.DeserializeObject<MyModel>(msg);
db.MyModels.Add(w);
db.SaveChanges();
}
我的问题是如何对 JSON 进行编码以便解析它?我无法更改收到的消息。我可以在我的方法中做什么,以便我可以阅读它?现在msg
总是给我null
.
鉴于您无法控制正在发送的数据,那么按照评论中的建议,确保您的模型与 JSON
的所需对象模型相匹配public class MyModel {
public DateTime datetime { get; set; }
public string filename { get; set; }
public string datasourcename { get; set; }
public string error { get; set; }
}
并利用 Web API 框架的模型绑定功能,让操作从请求主体绑定强类型模型。
[HttpPost]
public IHttpActionResult SaveMessage([FromBody] MyModel model) {
if(ModelState.IsValid) {
db.MyModels.Add(w);
if(db.SaveChanges() > 0)
return Ok();
}
return BadRequest();
}
如果保存消息有任何问题,操作将 return HTTP 状态代码 400 错误请求,否则它将 return HTTP 状态代码 200 正常。