一尘不染

ASP.NET Web API部分响应Json序列化

json

我正在实现一个支持部分响应的Web API。

/api/users?fields=id,name,age

给定班级用户

[JsonObject(MemberSerialization.OptIn)]
public partial class User
{
  [JsonProperty]
  public int id { get; set; }

  [JsonProperty]
  public string firstname { get; set; }

  [JsonProperty]
  public string lastname { get; set; }

  [JsonProperty]
  public string name { get { return firstname + " " + lastname; } }

  [JsonProperty]
  public int age { get; set; }
}

序列化所有属性时,Json格式化程序效果很好,但是我无法在运行时对其进行修改以告诉它忽略某些属性,具体取决于查询参数“字段”。

我正在使用JsonMediaTypeFormatter。

为了自定义格式化程序,我遵循了http://tostring.it/2012/07/18/customize-json-result-in-web-
api/,但是我找不到任何有关如何强制格式化程序的示例忽略一些属性。


阅读 202

收藏
2020-07-27

共1个答案

一尘不染

创建自己IContractResolver的告诉JSON.NET哪些属性需要序列化。官方文档中有一个示例,您可以从中汲取灵感

2020-07-27