如何根据条件来确定某个字段是否应该被序列化
2016-11-10 15:46
337 查看
应用场景:
有的时候需要通过条件来判断某个字段是否可以被序列化,例如:再写WebApi的时候,只有当Api方法出错的时候,才将error的具体信息返回去,如果方法正常运行就不返回error字段。
第一种方式(JSON):
我们可以用JSON.NET的 ShouldSerialize 语法
详细信息请看如下链接:
http://stackoverflow.com/questions/34304738/how-to-ignoring-fields-and-properties-conditionally-during-serialization-using-j
第二种方式(XML):
我们可以创建另外一个boolean类型标识字段,这个字段的名字格式为:目标字段名称 + Specified
当这个标识字段返回true时,目标字段将被序列化;反之将不会被序列化
当然,如果直接在目标字段上添加XmlIgnoreAttribute标签,则此目标字段也将不会被序列化
详细信息请看如下链接:
http://stackoverflow.com/questions/4386338/how-to-serialize-some-attribute-in-some-condition
有的时候需要通过条件来判断某个字段是否可以被序列化,例如:再写WebApi的时候,只有当Api方法出错的时候,才将error的具体信息返回去,如果方法正常运行就不返回error字段。
第一种方式(JSON):
我们可以用JSON.NET的 ShouldSerialize 语法
public class Employee { public string Name { get; set; } public Employee Manager { get; set; } public bool ShouldSerializeManager() { // don't serialize the Manager property if an employee is their own manager return (Manager != this); } }
详细信息请看如下链接:
http://stackoverflow.com/questions/34304738/how-to-ignoring-fields-and-properties-conditionally-during-serialization-using-j
第二种方式(XML):
我们可以创建另外一个boolean类型标识字段,这个字段的名字格式为:目标字段名称 + Specified
当这个标识字段返回true时,目标字段将被序列化;反之将不会被序列化
当然,如果直接在目标字段上添加XmlIgnoreAttribute标签,则此目标字段也将不会被序列化
public class Person { public string Name { get; set; } [XmlIgnore] public bool NameSpecified { get { return Name != "secret"; } } }
详细信息请看如下链接:
http://stackoverflow.com/questions/4386338/how-to-serialize-some-attribute-in-some-condition
相关文章推荐
- Oracle中如何根据一个字段查询是否有符合条件的记录
- 根据条件修改FORM中当前行某一字段是否可编辑
- Oracle - EBS: SQL&PL/SQL 如何根据flag参数决定是否按照某些字段group分组
- 将不确定变为确定~Linq的Group是否可以根据多个字段进行分组
- 如何编写一条SQL实现根据某个字段的条件对某个字段进行不同的update操作
- 根据某个字段判断是否添加条件
- sd--如何控制定价条件根据用户不同而操作不同(有的可以输入有的不可以)
- GridView的第一列是ButtonField,字段名是"删除",想一点之后弹出确认框,否则返回.应该如何写?
- 如何判断一个已知的表中是否存在某个字段,如果不存在就创建它.
- C#如何让GridView内某行数据根据条件变色(WEB FORM)
- oracle 基础和管理 如何判断某个表中是否存在某个字段?
- 关于progame反驳字段是否应该不为空的论点
- MOSS: 如何根据AD帐号判断该用户是否属于网站用户?
- 如何判断表中某一字段是否存在?
- 在sqlserver中如何根据字段名查找字段所在的表
- c#如何确定数据库当中是否存在表
- 利用MYSQL的C API编程,如何确定一个数据库/表是否存在???
- 求助求助——请教各位高手,抽出一点宝贵的时间根据这个实例讲解一下应该如何分层呢?
- 如何确定安装了哪些版本的 .NET Framework 以及是否应用了 Service Pack
- 在sqlserver中如何根据字段名查找字段所在的表