相关疑难解决方法(0)

筛选出ASP.NET Core API中的属性

我想在我的API中提供以下JSON:

{
  "id": 1
  "name": "Muhammad Rehan Saeed",
  "phone": "123456789",
  "address": {
    "address": "Main Street",
    "postCode": "AB1 2CD"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想赋予客户端过滤掉他们不感兴趣的属性的能力。因此,以下URL返回JSON的子集:

`/api/contact/1?include=name,address.postcode

{
  "name": "Muhammad Rehan Saeed",
  "address": {
    "postCode": "AB1 2CD"
  }
}
Run Code Online (Sandbox Code Playgroud)

在ASP.NET Core中实现此功能的最佳方法是什么,以便:

  1. 该解决方案可以全局应用,也可以应用于单个控制器或类似过滤器的操作。
  2. 如果该解决方案使用反射,则还必须有一种方法可以通过为其提供一些代码以出于性能原因手动滤除属性来优化特定的控制器动作。
  3. 它应该支持JSON,但是很好地支持XML等其他序列化格式。

我发现这个解决方案,它使用了自定义JSON.Net ContractResolver。可以通过将合同解析器添加到ASP.Net Core使用的默认合同解析器中来全局应用该合同解析器,也可以将其手动添加到此代码示例之类的单个操作中,而不是添加到控制器中。另外,这是JSON特定的实现。

asp.net json json.net asp.net-core asp.net-core-1.0

5
推荐指数
1
解决办法
1206
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

asp.net-core-1.0 ×1

json ×1

json.net ×1