一尘不染

如何从Json序列化中排除属性

c#

我有一个要序列化的DTO类

Json.Serialize(MyClass)

如何排除它的 公共 财产?

(它必须是公共的,因为我在其他地方的代码中使用了它)


阅读 318

收藏
2020-05-19

共1个答案

一尘不染

如果System.Web.Script.Serialization在.NET Framework
中使用,则
可以ScriptIgnore在不应序列化的成员上放置一个属性。请参阅此处的示例:

考虑以下(简化)情况:

public class User {
    public int Id { get; set; }
    public string Name { get; set; }
    [ScriptIgnore]
    public bool IsComplete
    {
        get { return Id > 0 && !string.IsNullOrEmpty(Name); }
    }
}

在这种情况下,只有Id和Name属性将被序列化,因此生成的JSON对象将如下所示:

{ Id: 3, Name: 'Test User' }

PS。 不要忘了添加对“ System.Web.Extensions” 的引用以使其工作

2020-05-19