c# - 可以将属性添加到我的类的 JSON 版本,而类中不存在它吗?

标签 c# json class serialization properties

我有一个 List<>的对象。他们的类没有“颜色”属性 ( String ) - 但我可以在序列化之前为每个列表元素派生此属性的值。

将此属性包含在 JSON 对象中以将其添加到类然后序列化整个对象的唯一方法是什么?

或者是否有一种方式/方法可以添加一个需要出现在 JSON 对象中的属性,否则在我的类中将毫无用处?

我知道可以使用各种字符串操作方法,但这样做感觉不对。

我正在使用 DataContractJsonSerializer

最佳答案

您可以创建一个 data contract surrogate透明地用另一个类的实例替换您的类的实例。这个新类可以看起来像任何东西,但在您的情况下,它只是具有额外的 Colour 属性。

这样做的好处是您可以保留列表项的原始类型;代理是在序列化过程中创建的,您现有的代码根本不需要接触它们。

关于c# - 可以将属性添加到我的类的 JSON 版本,而类中不存在它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12456364/

相关文章:

c# - 解析文本并保存在内存中c#

arrays - 如何使用另一个类的变量打印一个类的元素?

c# - 如何在检查器中隐藏继承的公共(public)变量?

c# - 在 mstest 中为测试套件设置超时

ruby-on-rails - Rails - 如何接受一组 JSON 对象

jquery - 序列化表行中的输入 (jQuery)

class - Unity JS 怎么有一个类?

java - 将类对象列表映射到另一个列表

c# - Mongodb In Query 对每条记录都有限制

java - 使用 selenium Webdriver 在 Java 中读取 JSON 文件并写入 JSON 文件