过滤ASP.NET Core API中的属性
发布时间:2020-05-23 02:24:19 所属栏目: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"}}
您只需要创建一个服务/转换器或类似的东西,它将使用反射来循环您的输入类型,并且只承载您指定的属性. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – IIS表达请求的执行时间要长4倍
- ASP.NET CoreEntityFramework核心:左(外)加入Linq
- asp.net – 加密ASP .NET 2.0和SQL Server 2005中的工资值
- 如何从ASP .NET网站检测客户端上安装的Java运行时?
- asp.net-mvc – ASP.NET MVC SiteMap提供程序 – 如何在实际
- asp.net-mvc – 数以千计的重定向不好SEO?
- asp.net – 如何使用会员资格提供者与EF代码优先?
- ASP.NET MVC删除操作链接确认
- 在asp.net中使用SQL查询中的变量(C#)
- asp.net – 如何在占位符中的动态生成的标签之间创建换行符
推荐文章
站长推荐
- asp.net-mvc-3 – 提交后的mvc3复选框值
- asp.net – 如何在vNext项目中的方法上应用Outpu
- asp.net核心 – Asp.net核心错误管理
- asp.net – web.config不转发到非.aspx页面上的4
- asp.net-mvc – MVC @ Url.Content vs @ Url.Act
- asp.net – 使用Page.Render覆盖后缓存替换
- asp.net – 如何在DLL中添加Web服务引用
- asp.net – 使用WebAPI时重新验证模型(TryValida
- asp.net-mvc – 获取文件内容的绝对路径
- asp.net-mvc-3 – 模型binder属性类型int的问题
热点阅读
