Hit*_*eja 28 json ignore properties servicestack
我有一个对象,我使用ToJson<>()ServiceStack.Text命名空间中的方法反序列化.
如何GET在序列化过程中省略所有唯一的属性?是否有任何属性[Ignore]或类似我可以用我的属性装饰,以便它们可以省略?
谢谢
myt*_*thz 53
ServiceStack的Text序列化程序遵循.NET的DataContract序列化程序行为,这意味着您可以使用opt-out [IgnoreDataMember]属性忽略数据成员
public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
[IgnoreDataMember]
public string IsIgnored { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
选择加入的替代方法是装饰您想要序列化的每个属性[DataMember].其余属性未序列化,例如:
[DataContract]
public class Poco
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
public string IsIgnored { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
最后还有一个不需要属性的非侵入式选项,例如:
JsConfig<Poco>.ExcludePropertyNames = new [] { "IsIgnored" };
Run Code Online (Sandbox Code Playgroud)
ServiceStack的Serializers还支持通过提供常规命名的ShouldSerialize({PropertyName})方法来动态控制序列化,以指示属性是否应该被序列化,例如:
public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
public string IsIgnored { get; set; }
public bool? ShouldSerialize(string fieldName)
{
return fieldName == "IsIgnored";
}
}
Run Code Online (Sandbox Code Playgroud)
ConditionalSerializationTests.cs中的更多示例
| 归档时间: |
|
| 查看次数: |
11168 次 |
| 最近记录: |