以下是我从 Ui 输入的 Json:
{
"data": [{
"Id": 1
}, {
"Id": 2
}, {
"Id": 3
}]
}
我可以在如下所示的对象结构中没有问题地接收它:
public class TestController : ApiController
{
/// <summary>
/// Http Get call to get the Terminal Business Entity Wrapper
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("api/TestJsonInput")]
public string TestJsonInput([FromBody] TestInput input)
{
return JsonConvert.SerializeObject(input.data);
}
public class TestInput
{
public List<Info> data { get; set; }
}
public class Info
{
public int Id { get; set; }
}
}
然而我的目标是通过以下 API 方法接收:
[HttpPost]
[Route("api/TestJsonInput")]
public string TestJsonInput1([FromBody] string input)
{
return input;
}
这样做的原因是,我没有使用通过 Web API 反序列化的 Json 对象,我只需要将实际的 Json 持久化到数据库并获取并返回到 Ui,Ui 会将其解析回来。
由于我无法按照建议接收字符串输入,因此我必须执行 Json 序列化、反序列化的额外步骤才能达到目标。有什么机制可以通过接收字符串并直接使用它来完全避免这种解决方法。我目前正在使用 Postman 进行测试
无论您在方法的参数中输入什么内容,您都可以直接将正文内容作为字符串读取。您实际上不需要在参数中添加任何内容,您仍然可以读取正文。
[HttpPost]
[Route("api/TestJsonInput")]
public string TestJsonInput1()
{
string JsonContent = Request.Content.ReadAsStringAsync().Result;
return JsonContent;
}
您不需要将输入读取为参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)