【发布时间】:2018-11-15 14:41:18
【问题描述】:
我正在处理与 C# 类/对象相比在 JSON 文件中查找缺失属性的问题。
我得到以下代码:
Public Class Server
{
string URL { get; set; }
string servername { get; set; }
string project { get; set; }
string type { get; set; }
int number { get; set; }
}
我得到了一个几乎匹配的 JSON 文件
{
"URL": "http://www.asdf.com",
"servername": "myServer",
"project": "Testproject"
}
与“服务器”类相比,如何识别 JSON 文件中缺失的属性?在这种情况下,缺少两个属性“type”和“number”。 当我将 JSON 文件反序列化到 Class 中时,所有属性都存在,因为它们是使用默认值初始化的。
...
Server myServer = new Server();
Server myServerJSON = JsonConvert.DeserializeObject<Server >({ "URL": "http://www.asdf.com", "servername": "myServer", "project": "Testproject"});
myServer.compareTo(myServerJSON);
我的最终目标如下。我将配置存储在 JSON 文件中,并尝试找出更新类模型后 JSON 文件中缺少哪些属性,因此我可以将这些缺少的值设置为默认值。
【问题讨论】:
-
Deserialize 已经用
default(T)设置了缺少的属性,其中T是属性类型——引用类型为null,值类型为默认值...... -
您可能会使用 JSON 模式来验证 JSON
标签: c# json compare configuration-files