c# - GET json 嵌套对象属性。[来自查询]
问题描述
我正在尝试查询“UserType”对象,并获取属性“name”所以整个 JSON 对象是 User: 并且 api 调用应该如下所示:
api/user?userTypeName=randomUserTypeName
我可以在其中搜索特定的 userTypeName,并返回名称。
接口调用:
在这里,我想使用 FromQuery,以便能够搜索 userTypeName 并检查 userTypeName 是否等于输入的名称。
// GET: /api/User/userTypeName
[HttpGet("{userTypeName}")]
public async Task<ActionResult<IEnumerable<User>>> GetAsync(([FromQuery(Name = "userTypeName")]string userTypeName) {
var result = await ctx.User
.Include(x => x.UserType)
.Where(x => x.UserType.Name.ToLower() == UserTypeName.ToLower())
.ToListAsync();
if (result == null) return BadRequest();
return result;
}
该对象如下所示:
{
"id": 9,
"userTypeId": 1,
"userType": {
"id": 1,
"name": "randomUserTypeName",
"users":
[
{
"id": 11,
"userTypeId": 1,
"userUrl": "https://userurl",
"username": "eee",
"password": "eee",
}
]
}
解决方案
如果您想userTypeName
通过请求从 Route访问/api/User/userTypeName
,您的操作应该是
[HttpGet("{userTypeName}")]
public async Task<ActionResult<IEnumerable<User>>> GetAsync(string userTypeName) {
var result = await ctx.User
.Include(x => x.UserType)
.Where(x => x.UserType.Name.ToLower() == UserTypeName.ToLower())
.ToListAsync();
if (result == null) return BadRequest();
return result;
}
如果您想userTypeName
通过请求从 Query访问api/user?userTypeName=randomUserTypeName
,您的操作应该像
[HttpGet]
public async Task<ActionResult<IEnumerable<User>>> GetAsync([FromQuery(Name = "userTypeName")]string userTypeName) {
var result = await ctx.User
.Include(x => x.UserType)
.Where(x => x.UserType.Name.ToLower() == UserTypeName.ToLower())
.ToListAsync();
if (result == null) return BadRequest();
return result;
}
推荐阅读
- java - Activity 对 Android 中的通信进行分段
- html - CSS中的网格系统
- javascript - React Native FlatList 中的 JSON
- css - 动画翻译无法正常工作
- ios - 在构建我的 Firestore 数据库时需要帮助/建议
- python - 如何从另一个类的 __init__ 访问一个类的属性?
- java - Java 多客户端聊天服务器私信选项
- r - 按 data.table 中的所有列分组
- laravel - hasOne() 带有 select 和 where 条件
- php - PHP:如何修改工作电子邮件脚本以在自己的服务器上运行(LAMP 服务器上的 PHP 邮件服务器设置)