无法解析 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 正常。