Преобразование yaml в json
Во время реализации конвертера yaml в json для схемы swagger я столкнулся с проблемой: настройка построителя десериализации по умолчанию
var deserializer = new DeserializerBuilder().Build()
не может распознавать целочисленные, логические типы. Десериализатор преобразует эти типы в строки. Например: у меня есть yaml:
EntityId:
type: integer
example: 1245
EntityIds:
type: array
items:
$ref: EntityId
example: [152, 6542, 23]
Результат преобразования:
"EntityId":{
"type":"integer",
"example":"1245"
},
"EntityIds":{
"type":"array",
"items":{
"$ref":"EntityId"
},
"example":[ "152","6542","23"]
}
но если я добавлю входной yaml к любому из онлайн-конвертеров, я получу правильный результат json:
"EntityId": {
"type": "integer",
"example": 1245
},
"EntityIds": {
"type": "array",
"items": {
"$ref": "EntityId"
},
"example": [
152,
6542,
23
]
}
также поведение для логических типов.
Вопрос в том, как настроить десериализатор для правильного преобразования.
1 ответ
В настоящее время это не поддерживается YamlDotNet. Ведется работа по поддержке схем, которая позволит это сделать, но она еще не завершена.