我有几个具有许多属性的类。这些属性的值将根据某些条件分配。在将值分配给少数属性后,我想序列化对象并仅包括那些具有值分配给它们的道具。
我试过在网上搜索这个,但我找不到任何运气。
任何关于实施这一点的建议都将不胜感激。
更新:
我有一些课程
class A{
public static string PropA_in_A { get; set; }
public string PropB_in_A { get; set; }
public static string PropC_in_A { get; set; }
public static string PropD_in_A { get; set; }
}
class B{
public static string PropA_in_B { get; set; }
public static string PropB_in_B { get; set; }
public static string PropC_in_B { get; set; }
public static string PropD_in_B { get; set; }
}
class C{
public static string PropA_in_C { get; set; }
public static string PropB_in_C { get; set; }
public static string PropC_in_C { get; set; }
public static string PropD_in_C { get; set; }
}
这些类中属性的值需要根据条件进行分配。分配值后,只需要序列化那些已分配值的属性。
main()
{
A.PropB_in_A="Some Value";
A.PropA_in_B="Some Value";
A.PropC_in_C="Some Value";
}
这里,我想只序列化那些被赋值的属性。
您可以在每个属性上使用XmlEl战备属性并将IsNullable设置为false。
这里有一个关于MSDN的例子。
[XmlElementAttribute(IsNullable = false)]
public string City;
或者使用较短的形式:
[XmlElement(IsNullable = false)]
public string City;
编辑:对于可为空的值类型,您必须跳过一些额外的步骤,添加一个属性,告诉序列化程序是否应该序列化该值。
public bool ShouldSerializeMyNullableInt()
{
return MyNullableInt.HasValue;
}
请参阅此答案以供参考:Xml序列化-隐藏空值
问题内容: 我需要反序列化一些JSON表示的JavaScript对象为适当的C#类。鉴于自动属性的出色功能,我宁愿将它们放在这些类中,而不是仅包含字段。不幸的是,.NET序列化引擎(至少默认情况下)完全忽略了反序列化的自动属性,而只关心背景字段,而该字段显然不在JavaScript对象中。 鉴于没有标准的方法来命名后备字段并且说实话,我什至不想使用“让我们创建一个看起来像具有C#后备字段的Java
问题内容: 我如何才能序列化一个特定的属性,但又防止其反序列化回POCO?是否可以使用属性装饰特定属性? 基本上,我正在寻找一个与ShouldSerialize *方法等效的反序列化方法。 我知道我可以编写一个自定义转换器,但是这样做似乎有点过头了。 编辑: 这里还有一些背景。这背后的原因是我的课看起来像: 我需要请求的属性,但是我不希望它反序列化并触发设置程序逻辑。 问题答案: 最简单的方法是将
是一个代表SQL语句中的条件语句的接口。这是一个接口,这样其他类型的条件可以使用,并且允许最大的灵活性,以满足您的需求。 例如,写在原始的SQLite: 建议我们的查询从Model的属性中创造条件。 @Table(database = TestDatabase.class) public class TestModel3 { @PrimaryKey String name;
我需要在定义的 POJO 列表中动态排除某些属性。要序列化的主要 POJO 是: id是被忽略,如果忽略id=true,像这样: 目前,我已经尝试使用< code>JsonFilter和< code>JacksonJsonViews但无法获得所需的输出。如果能给出实现这一目标的任何指示,我将非常高兴。
问题内容: 如果我尝试序列化静态属性会怎样? 谢谢 问题答案: 从这篇文章: 提示1:处理静态变量 Java类通常在静态类变量中包含一些全局相关的值。我们不会进入有关全局变量是否适当的争论的悠久历史- 只能说程序员继续发现它们有用,而纯粹主义者建议的替代方案并不总是可行的。 对于声明时初始化的静态变量,序列化不会出现任何特殊问题。第一次使用该类时,相关变量将设置为正确的值。 某些静态无法通过这种方
本文向大家介绍C#中的StringBuilder.Chars []属性,包括了C#中的StringBuilder.Chars []属性的使用技巧和注意事项,需要的朋友参考一下 StringBuilder.Chars []属性在此实例中获取或设置字符在指定字符位置。 语法 语法如下- 在上方,索引参数是字符的位置。 示例 现在让我们看一个例子- 输出结果 这将产生以下输出- 示例 现在让我们来看另一