接收 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"
我正在创建一个应该接受 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"