首页 > 解决方案 > Web API 将 JSON 对象转换为简单的参数

问题描述

如果我将 JSON 数据(通过 POST)发送到这样的 .Net Core Web API

{ a: "a", b: "b" }

我需要做什么才能拥有这样的控制器方法?

[HttpPost]
public async Task SometMethod(string a, string b) 
{
  return Ok();
}

通常,所有教程和文档都说您需要定义一个类并使用[FromBody]属性。但是,如果没有我并不真正需要的额外课程,我该怎么做呢?

标签: .net-coreasp.net-core-webapi

解决方案


首先,你的 json 应该是:

{ 
    "a":"a", 
    "b":"b" 
}

您可以接收数据JObject而不是像下面这样的类:

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
    [HttpPost]
    public void Post(JObject data)
    {
        //get the property value like below
        var data1 = data["a"].ToString();
        var data2 = data["b"].ToString();
    }
}

结果(为了方便区分值和属性名称,我更改为aaaa): bbbb在此处输入图像描述


推荐阅读