你如何在Json.NET中使用JSON Schema'default'属性?

Bat*_*bix 12 default-value json.net jsonschema

如果我有一个JSON Schema,它指定了一个属性的默认值,比如

{
    "type" : "object",
    "properties" : {
        "foo" : { "type" : "string" },
        "bar" : { "type" : "string", "default" : "some text" }
    }
}
Run Code Online (Sandbox Code Playgroud)

...和JSON字符串一样

{
    "foo" : "lorem ipsum"
}
Run Code Online (Sandbox Code Playgroud)

...如何反序列化该JSON字符串,以便bar设置为"some text"(默认值)而不是null?

Fla*_*ken 12

在json模式中,"default"属性只是一个元数据(如"title"和"description")因此,如果没有提供,则不应将其用作值回退(假设您使用模式反序列化对象) .这就是说,如果我们想要从模式创建一个文档实例,我个人使用这个默认值作为后备来制作一个反序列化器.然而,这不是一般情况.


Bat*_*bix 6

我跟踪了Json.NET源代码中的引用,并且显然已经解析了默认属性,但没有用于任何内容.所以,我自己的问题的答案是:你不能在当前的Json.NET版本中使用它.