过滤ASP.NET Core API中的属性
发布时间:2021-02-20 15:36:28 所属栏目:asp.Net 来源:互联网
导读:我想在我的API中提供以下 JSON: { id: 1 name: Muhammad Rehan Saeed, phone: 123456789, address: { address: Main Street, postCode: AB1 2CD }} 我想让客户端能够过滤掉他们不感兴趣的属性.以便以下URL返回JSO
我想在我的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"}} 您只需要创建一个服务/转换器或类似的东西,它将使用反射来循环您的输入类型,并且只承载您指定的属性. (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 菜单控件生成的js导致Web窗体中的Sys未定义的异
- asp.net – 按钮属性: – commandName和CommandArguments
- asp.net-mvc – 有什么技巧/技巧使用亚音速与Asp.Net MVC框
- asp.net – Oracle.ManagedDataAccess:TNS:无法解析指定的
- Plone和Asp.Net集成
- asp.net-mvc – 为什么在视图引擎中指定位置时,viewstart文
- asp.net – Azure可以运行WPF吗?
- .net – 什么可以解释托管堆上超过5,000,000个System.WeakR
- asp.net – __doPostBack在DotNetNuke网站上未定义为IE 10
- asp.net-mvc-4 – MVC 4 Razor如果拆分div标签
推荐文章
站长推荐
- asp.net – 错误:数据绑定方法(如Eval(),XPath(
- asp.net-mvc-5 – 我需要在MVC Razor中编码属性值
- Asp.Net超大文件上传问题解决
- 集成ASP.NET Webforms,WebAPI和AngularJS
- asp.net-mvc – 存储库与DAL中的服务模式:EF和D
- asp.net-mvc – Url.Action生成查询字符串,以任何
- asp.net-mvc – 使用输出缓存和其他动作过滤器
- ASP.NET中操作SQL数据库(连接字符串的配置及获取
- 从ASP.Net中的sessionID获取会话对象
- entity-framework – 如果EF 5,如何定义自定义命
热点阅读