【发布时间】:2020-04-05 21:25:43
【问题描述】:
我有一个 .json 配置文件,我在其中存储应用程序启动时反序列化的应用程序设置。
例子:
{
"MyProperty1": "MyValue1",
"MyProperty2": [1, 2, 3]
}
JSON 反序列化的对象是:
public class Config{
public string MyProperty1{ get; set; }
public List<int> MyProperty2{ get; set; } = new List<int> { 4, 5, 6 };
}
我遇到的问题是,当属性 MyProperty2 的 JSON 被反序列化时,它会将值 1、2、3 附加到默认属性值 4、5、6,结果是 MyProperty2 = 4 , 5, 6, 1, 2, 3
我希望 MyProperty2 默认为 4、5、6,除非 .json 配置文件中另有指定。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
ObjectCreationHandling.Replace是谷歌返回的内容 -
嘿,我显然不能使用谷歌(我试过了)——确实是答案:) 谢谢。如果您想要积分,请发布答案,我会接受。
-
ObjectCreationHandling.Replace反序列化后的结果是 1,2,3,而不是 OP 想要的 4,5,6 -
不是 4,5,6,因为 OP 想要 ...我很确定这是 不是真的 因为:我希望 MyProperty2 在 .json 配置文件中默认为 4、5、6除非另有说明
-
唯一的问题是 json 中的
{ "MyProperty2": null }(但它仍然是 在 json 中指定的)
标签: c# json serialization properties default-value