Ответ 1
Я прослеживал ссылки в исходном коде Json.NET, и атрибут по умолчанию, по-видимому, разбирался, но не использовался ни для чего. Итак, ответ на мой вопрос: вы не можете использовать его в текущей версии Json.NET.
Если у меня есть схема JSON, которая указывает значение по умолчанию для свойства, например
{
"type" : "object",
"properties" : {
"foo" : { "type" : "string" },
"bar" : { "type" : "string", "default" : "some text" }
}
}
... и строка JSON, например
{
"foo" : "lorem ipsum"
}
... как я могу десериализовать эту строку JSON так, чтобы bar
был установлен на "некоторый текст" (значение по умолчанию) вместо null?
Я прослеживал ссылки в исходном коде Json.NET, и атрибут по умолчанию, по-видимому, разбирался, но не использовался ни для чего. Итак, ответ на мой вопрос: вы не можете использовать его в текущей версии Json.NET.
В json-схемах свойство "default" - это только метаданные (так как "title" и "description" ), поэтому не предполагается использовать его в качестве резерва значения, если ни один не предоставлен (предполагается, что вы десериализуете объект, используя схема). Это говорит о том, что я лично сделал десериализатор, используя это значение по умолчанию, как резерв, если мы хотим создать экземпляр документа из схемы. Тем не менее это не общий случай.
При переносе объекта для многих применений, валидации, рендеринга форм, документации и тестирования это решение архитектора о том, когда и как использовать значения по умолчанию, и вы, скорее всего, воспользуетесь значениями по умолчанию. Если вы ищете предварительно упакованный один размер, подходит для любого решения, которое может обрабатывать дополнительные данные и затраты на передачу дублирующих значений по умолчанию, то, возможно, другие методологии схемы имеют лучшую поддержку .NET(xml).