首页 > 解决方案 > 如何将 JSON 对象作为参数从 Postman 传递到 ASP.NET WEB API

问题描述

我想将 json 对象作为查询字符串参数(不是来自正文)从邮递员传递给 ASP.NET Core Web API url。请告诉我如何通过?在示例 JSOB 对象结构下方:

这里,'names' 是字符串数组

"students":[
      {
         "id":"1",
         "names":["john", "james"]
      },
      {
         "id":"2",
         "names":["peter", "harry"]
     }
]

标签: c#jsonasp.net-core-mvcpostmanasp.net-core-webapi

解决方案


这是我做的demo,可以参考

在 Postman 中,请记住在Headers中将“ Content-Type ”设置为“ application/json ” ,否则您可能会收到错误 - 415 Unsupported MediaType。

https://localhost:44388/api/student/?students[0].id=1&students[0].name[0]=john&students[0].name[1]=james&students[1].id=2&students[1].name[0]=peter&students[1].name[1]=harry

学生模型

 public class Student
{
    public int Id { get; set; }
    public string[] Name { get; set; }
}

在 Controller 中,不要忘记在 action 的参数中添加[FromQuery]

[Route("api/[controller]")]
[ApiController]
public class StudentController : ControllerBase
{
    [HttpPost]
    public void PostStudent([FromQuery]List<Student> students)
    {
    }
}

学生参数截图

在此处输入图像描述

正如 Gabriel Luci 所说,Json 对象最好在请求体中传递。


推荐阅读