过滤ASP.NET Core API中的属性
发布时间:2020-12-15 19:50:54 所属栏目:asp.Net 来源:网络整理
导读:我想在我的API中提供以下 JSON: { "id": 1 "name": "Muhammad Rehan Saeed","phone": "123456789","address": { "address": "Main Street","postCode": "AB1 2CD" }} 我想让客户端能够过滤掉他们不感兴趣的属性.以便以下URL返回JSON的子集: `/api/contact/
我想在我的API中提供以下
JSON:
{ "id": 1 "name": "Muhammad Rehan Saeed","phone": "123456789","address": { "address": "Main Street","postCode": "AB1 2CD" } } 我想让客户端能够过滤掉他们不感兴趣的属性.以便以下URL返回JSON的子集:
{ "name": "Muhammad Rehan Saeed","address": { "postCode": "AB1 2CD" } } 在ASP.NET Core中实现此功能的最佳方法是什么,以便: >该解决方案可以全局应用,也可以应用于单个控制器或过滤器等操作. 我找到了使用自定义JSON.Net ContractResolver的this解决方案.合同解析程序可以通过将其添加到ASP.Net Core使用的默认合同解析程序或手动添加到单个操作(如this代码示例而不是控制器)来全局应用.此外,这是一个特定于JSON的实现. 解决方法
您可以使用Dynamic与ExpandoObject一起创建包含所需属性的动态对象.
ExpandoObject是动态关键字在底层使用的内容,它允许在运行时动态添加和删除属性/方法.
[HttpGet("test")] public IActionResult Test() { dynamic person = new System.Dynamic.ExpandoObject(); var personDictionary = (IDictionary<string,object>)person; personDictionary.Add("Name","Muhammad Rehan Saeed"); dynamic address = new System.Dynamic.ExpandoObject(); var addressDictionary = (IDictionary<string,object>)address; addressDictionary.Add("PostCode","AB1 2CD"); personDictionary.Add("Address",address); return Json(person); } 这导致了 {"Name":"Muhammad Rehan Saeed","Address":{"PostCode":"AB1 2CD"}} 您只需要创建一个服务/转换器或类似的东西,它将使用反射来循环您的输入类型,并且只承载您指定的属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何使用Quartz.net 2.0安排任务?
- asp.net-mvc – 如何拦截视图渲染以在所有部分视图上添加HT
- asp.net-mvc – MVC 4中app.config的等价物
- asp.net-core – ASP.NET Core / MVC6中的WebTelemetryInit
- asp.net-mvc – 在ASP.NET核心中创建单元测试
- asp.net – 用户角色 – 为什么不存储在会话中?
- 实体框架 – 使用实体框架数据模型添加验证属性
- asp.net – 自定义编辑删除选择GridView中的链接
- asp.net – 是否有可能告诉IIS 7并行处理请求队列?
- 安装ASP.NET Route Debugger后出现异常
推荐文章
站长推荐
- asp.net – asp:Gridview&asp:表格生成bor
- asp.net-mvc – 发送电子邮件是否属于应用程序的
- asp.net-mvc – 在bootstrap模式中使用时,MVC中的
- asp.net-mvc – 具有Knockout和Web API的ASP.NET
- asp.net – 处理“潜在的危险Request.Form值…”
- asp.net-web-api – 什么将WCF Web API中的HttpO
- asp.net-mvc – 将依赖项注入验证属性Web Api As
- asp.net-web-api – ASP.NET Core中的IHttpActio
- (二)快速搭建 ASP.net core Web 应用
- asp.net – IE超时后重新发送请求?
热点阅读