【问题标题】:How to parse JSON body in C# HttpPost method如何在 C# HttpPost 方法中解析 JSON 正文
【发布时间】:2021-11-28 23:04:08
【问题描述】:

我想解析 JSON 正文并在 C# 中以 HttpPost 方法返回内容。

JSON 正文包含以下信息:

{
    "name": "John",
    "age": "20"
}
[HttpPost]
public async Task<IActionResult> Test() 
{
return new JsonResult(new { items = new string[] { name, age } });

}

我希望方法返回:

John 20

【问题讨论】:

  • 要确认 JSON 已发布到您的 Test() 操作,您需要知道如何从中获取 nameage 变量?
  • @toneo 是的,这是正确的

标签: c# json .net-core http-post webapi


【解决方案1】:

试试这个

public class ViewModel
{
    public string Name {get; set;}
 public int Age {get; set;}
}

[HttpPost]
public JsonResult Test([FromBody ViewModel model]) 
{
return new JsonResult(new {  name= model.Name, age=model.Age } });

}

您不需要异步,因为您在操作中没有任何异步方法

【讨论】:

  • 补充一点,参数绑定的官方文档是here
【解决方案2】:

如果我没有正确回答问题,您只想返回 John 20 字符串,那么您可以直接使用:

返回 OK($"{name} {age}")

【讨论】:

  • JSON 正文正在发布(不在源代码中),所以我需要一种读取/解析它的方法。我认为您需要在方法中使用[FromBody] 之类的东西。
  • 在这种情况下是的,您可以使用 [FromBody]。 C# 会自动为您解析它。您只需要从帖子内容中创建一个具有相应属性的模型。
猜你喜欢
  • 2011-08-30
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多