C# 接受任何JSon格式到WabApi(无模型)
通常,在编写WebApi时,传入的Json将具有一致的结构,因此我会将其直接映射到以下形式的模型:C# 接受任何JSon格式到WabApi(无模型),c#,asp.net-core-webapi,C#,Asp.net Core Webapi,通常,在编写WebApi时,传入的Json将具有一致的结构,因此我会将其直接映射到以下形式的模型: [Post] public async Task<HttpResponseMessage> myWebApiMethod([FromBody] myModel Request) [Post] 公共异步任务myWebApiMethod([FromBody]myModel请求) 这将是好的和工作 现在我需要为Json输入编写代码,因为这里没有通用的结构,所以我不能针对“myModel”
[Post]
public async Task<HttpResponseMessage> myWebApiMethod([FromBody] myModel Request)
[Post]
公共异步任务myWebApiMethod([FromBody]myModel请求)
这将是好的和工作
现在我需要为Json输入编写代码,因为这里没有通用的结构,所以我不能针对“myModel”发表文章
我想如果我做了以下事情:
[Post]
public async Task<HttpResponseMessage> myWebApiMethod([FromBody] string Request)
[Post]
公共异步任务myWebApiMethod([FromBody]字符串请求)
将完成完成Json的工作,但当我使用Swagger时,请求是空的。我还尝试声明为HttpRequestMessage
,但它似乎也是空的
有人能告诉我哪里出了问题吗。您是否尝试过在API方法定义中使用泛型?我在异步任务中只使用一个基本模型,该模型具有所有API调用都具有的公共属性,但这不是必需的
[Post]
public async Task<HttpResponseMessage> myWebApiMethod([FromBody] TReq request)
where TResp : ResponseRptBase, new()
[Post]
公共异步任务myWebApiMethod([FromBody]TReq请求)
其中TResp:ResponseRptBase,new()
您可以使用object作为参数来绑定任何JSON值。在C#中,对象是其他所有类的基类
[HttpPost]
public async Task<IActionMethord> MyActionMethod([FromBody] object anymodel)
{
return Ok("Success");
}
[HttpPost]
公共异步任务MyActionMethod([FromBody]对象anymodel)
{
返回Ok(“成功”);
}
谢谢,我不知道为什么我没有尝试这个,但这个已经做到了。我甚至不能使用泛型,因为我感兴趣的数据可以被包装在任何东西中,任何级别。