JSON.NET-忽略用于序列化的属性



我目前正在使用JSON.NET开发ASP.NET WebAPI。我希望减少流量,并希望忽略模型的某些属性进行序列化,即我不想在JSON响应中返回它们,但我希望在它们传递到我的端点时接受它们。

示例类

public class User {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Role { get; set; }
}

用例

  • 我有一个POST端点,它将用户模型作为参数。请求包含名称和角色。这些道具应该解析到我的User中
  • 我有一个返回User的GET端点。我只希望响应包含Id和Name。应忽略角色

问题

当我使用JSON.NET中的JsonIgnore属性时,该属性将被完全忽略。它不是为我的响应序列化的,但当我将JSON用户发布到我的端点时,我的用户的道具为null。

有没有办法只为了序列化而忽略道具?

提前谢谢!

这正是数据传输对象的用途。您应该为不同的目的创建不同的DTO(GET/POST)。

当您想忽略它时,使用它并传递null

[JsonProperty("property_name", NullValueHandling=NullValueHandling.Ignore)]

相关内容

  • 没有找到相关文章

最新更新