我有List<>
个对象。他们的类没有'color'属性(String
) - 但我可以在序列化之前为每个列表元素派生此属性的值。
唯一的方法是在JSON对象中包含此属性以将其添加到类中,然后序列化整个事物吗?
或者是否有一种方法/方法来添加需要出现在JSON对象中的属性,否则在我的课程中它将毫无用处?
我知道使用各种字符串操作方法是可能的,但是这样做感觉不对。
我正在使用 DataContractJsonSerializer 。
答案 0 :(得分:3)
您可以创建一个data contract surrogate,透明地用另一个类的实例替换您的类的实例。这个新类看起来像任何东西,但在你的情况下,它只会有额外的Colour
属性。
这样做的好处是保留了列表项的原始类型;代理在序列化过程中创建,现有代码根本不需要触及它们。
答案 1 :(得分:1)
我想你可以创建一个继承自List对象的新类,并在主类上添加不可用的字符串。
创建JSON时,只需使用派生类,该派生类将包含添加的字符串值,并继承原始对象中的所有其余数据。