c# - 如何将 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"]
}
]
解决方案
这是我做的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 对象最好在请求体中传递。
推荐阅读
- scala - agg 函数将多行转换为具有不同类型的多列
- reactjs - undefined 不是对象(评估 '_reactNative.Animated.Text.propTypes.style')
- unit-testing - Sails.js:无法为单元测试目的存根助手
- java - 将数组值重新排列到新数组中
- python - pyenv-virtualenv 中的环境变量
- javascript - 如何从 this.state POST 数据?
- gcc - OpenMP/OpenACC 实现和 gcc/PGI 编译器之间的结果差异
- amazon-web-services - AWS Elastic Beanstalk - 添加了 SSL 证书但仍然是 HTTPS 错误:SSL_ERROR_BAD_CERT_DOMAIN
- spring - Docker compose 中的 Eureka 客户端注册失败:无法注册为客户端 - 但 eureka 服务器和客户端已单独启动并运行
- java - RSocket Java(服务器)/ C#(客户端):无法解码为 [ch.Person]GenericMessage