模型中的JsonSchema属性依赖关系

时间:2016-01-05 00:09:57

标签: c# json json.net jsonschema

好吧,我理解了属性dependency如何在JSON模式中工作,我可以成功地组合一个在JsonSchemaValidator中工作正常的JSON模式:

{
    "type" : "object",
    "properties" : {
        "ServerName" : {
            "type" : "string"
        },
        "Username" : {
            "type" : "string"
        },
        "Password" : {
            "type" : "string"
        }
    },
    "dependencies" : {
        "Username" : ["ServerName"],
        "Password" : ["ServerName"]
    }
}

在上面的JSON模式中,我们的想法是仅在存在ServerName时接受用户名或密码。

我的问题是如何在C#中构建模型,以便以与Required属性相同的方式识别依赖项。

我所期待的是这样的:

public class TestModel
  {
    public string ServerName { get; set; }

    [JsonProperty(Dependency = new [] {"ServerName"})]
    public string Username { get; set; }

    [JsonProperty(Dependency = new[] { "ServerName" })]
    public string Password { get; set; }
  }

如果没有该属性,那么我需要知道如何使用JSON模式方法将其添加到模式。

我知道在JSON-schema上有一个名为Dependencies的属性,我尝试了但它没有效果,我不确定如何正确使用它。

我尝试了类似下面的内容,但它根本没有改变架构:

  ...
  var jsonSchemaGenerator = new JSchemaGenerator();
  var schema = jsonSchemaGenerator.Generate(typeof(TestModel));
  schema.Dependencies.Add("Password", "ServerName");
  schema.Dependencies.Add("Username", "ServerName");
  var schemaJson = schema.ToString();
  ...

有什么想法吗?

0 个答案:

没有答案