Как использовать атрибут JSON Schema по умолчанию в Json.NET? - PullRequest
12 голосов
/ 10 августа 2011

Если у меня есть схема JSON, которая задает значение по умолчанию для свойства, например

{
    "type" : "object",
    "properties" : {
        "foo" : { "type" : "string" },
        "bar" : { "type" : "string", "default" : "some text" }
    }
}

..., и строку JSON, например

{
    "foo" : "lorem ipsum"
}

... как можноЯ десериализую эту строку JSON так, чтобы bar был установлен в «некоторый текст» (значение по умолчанию) вместо нуля?

Ответы [ 3 ]

12 голосов
/ 20 июля 2012

В схемах json свойство «default» - это только метаданные (как и «title» и «description»), поэтому его не следует использовать в качестве запасного значения, если не предоставлено ни одного (при условии, что вы десериализовали объект, используясхема).При этом я лично создал десериализатор, используя это значение по умолчанию в качестве запасного варианта, если мы хотим создать экземпляр документа из схемы.Тем не менее, это не общий случай.

6 голосов
/ 23 августа 2011

Я проследил ссылки в исходном коде Json.NET, и атрибут по умолчанию явно анализируется, но ни для чего не используется.Итак, ответ на мой вопрос: вы не можете использовать его в текущей версии Json.NET.

0 голосов
/ 01 апреля 2014

При переносе объекта для многих целей, валидации, рендеринга форм, документирования и тестирования это решение архитектора о том, когда и как использовать значения по умолчанию, и вы, скорее всего, будете использовать значения по умолчанию.Если вы ищете готовую упаковку одного размера, подходящую для всех решений, которая может справиться с дополнительными затратами на хранение данных и переносом из-за дублирующих значений по умолчанию, то, возможно, другие методологии схемы имеют лучшую поддержку .NET (xml).

...