在c#中验证预期的json结构

时间:2018-05-26 09:29:40

标签: c# json

我有一些wpf应用程序,我根据用户在某些本地json文件中的输入存储数据。大概它看起来像:

{
  "Database": {
    "instance": "",
    "userName": "",
    "password": "",
  },
       "Website": {
    "ip": "111.111.111.111",
    "port": "8080"
  },
       "User": [],
  "ReportService": {
    "instance": "fff",
    "ip": "111.111.121.212",
    "port": "88"
  }
}

假设我有一个"导入"按钮女巫让用户导入其他json文件。

我的问题是如何验证导入的json文件与我的结构相同?

我指的是与用户名,密码等字段相同的对象。

因为我想验证导入的json以验证他具有与我期望的结构相同的结构。

修改

我现在的解决方案是try, catch,但我确信有更优雅的解决方案

2 个答案:

答案 0 :(得分:1)

指定对象,然后在JSON.net中对它进行序列化和反序列化,而不是JObject。因此,如果反序列化不起作用,您将确保架构已更改

答案 1 :(得分:0)

正如托马斯指出的那样,为你的对象定义自己的JSON schema是要走的路。然后,您可以根据此架构验证导入的文件,例如使用Json.NET如图here所示,因为这个库通常是在.NET上使用JSON的首选