Преобразование 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. Ведется работа по поддержке схем, которая позволит это сделать, но она еще не завершена.

Другие вопросы по тегам