接收 JSON 作为 Web API 的输入

Receive the JSON as an input to the Web API

我正在创建一个应该接受 JSON 作为输入参数的控制器。 JSON 很简单,如下所示

{ 
 "Barcode" : "M28"
}

我已经为上述 JSON 创建了一个模型 Class,例如

 public class CodeDTO
 {
    public class RootObject
    {
        public string Barcode { get; set; }
    }
 }

现在,我需要接收这个 CodeDTO 作为输入参数并解析它以找到 BarCode

 public class SetNameController : ApiController
  {
    [HttpPost]
    public async Task<IHttpActionResult> Get(CodeDTO bCode)
    {
      var returnObj = JsonConvert.DeserializeObject<CodeDTO.RootObject>(bCode);
        string Bar_Code = returnObj.Barcode.ToString();

        if (Bar_Code == "" || Bar_Code == null)
        {
            ............

但是它会抛出如下错误

The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject(string, params Newtonsoft.Json.JsonConverter[])' has some invalid arguments

如何反序列化 JSON 并获取元素

不需要自己反序列化,改成如下:

 public async Task<IHttpActionResult> Get([FromBody] CodeDTO.RootObject bCode)
 {
     string Bar_Code = bCode.Barcode.ToString(); 
 }

当您发布数据时,请在您的 header 请求中指定内容类型:

contentType:"application/json"