默认情况下,Controller.Json为类的每个公共成员生成JSON。如何更改此设置以便忽略某些成员。请注意,我使用的是.Net Core。
示例:
[HttpGet("/api/episodes")]
public IActionResult GetEpisodes()
{
var episodes = _podcastProvider.Get();
return Json(episodes);
}
感谢。
答案 0 :(得分:6)
您可以使用[JsonIgnore]
命名空间中可用的Newtonsoft.Json
属性,如下所示:
public class Model
{
public int Id { get; set; }
public string Name { get; set; }
[JsonIgnore]
public int Age { get; set; }
}
答案 1 :(得分:3)
如何更改此设置以便忽略某些成员?
在封面下,这使用了Newtonsoft.Json
。有两种方法可以做到这一点。
JsonIgnore
属性并标记要省略的属性。episodes
类将自己定义为“选择加入”,这意味着只有标有JsonProperty
的属性才会被序列化。 [JsonObject(MemberSerialization.OptIn)]
这取决于您需要省略的属性数量与序列化的数量。
public class Episode
{
public int Id { get; }
[JsonIgnore] public string Name { get; }
[JsonIgnore] public Uri Uri { get; }
[JsonIgnore] public long Length { get; }
}
以上将产生与此相同的JSON:
[JsonObject(MemberSerialization.OptIn)]
public class Episode
{
[JsonProperty]
public int Id { get; }
public string Name { get; }
public Uri Uri { get; }
public long Length { get; }
}