Я пытаюсь десериализовать некоторый YAML, который имеет !!set в строке, созданной SnakeYaml при сериализации Java HashSet. Различные универсальные типы сериализуются, например, HashSet и с пользовательским типом HashSet.
Пример YAML:
holidays: !!set
? DDMMYYYY: 25/12/2042
MMDDYYYY: 12/25/2042
date:
chronology: &id001
calendarType: iso8601
id: ISO
dayOfMonth: 25
dayOfWeek: THURSDAY
dayOfYear: 359
era: CE
leapYear: false
month: DECEMBER
monthValue: 12
year: 2042
serialValue: 52225
: null
Сначала я получаю исключение:
Дополнительная информация: не удалось загрузить файл или сборку «2002: набор» или одну из ее зависимостей. Система не может найти указанный файл.
Чтобы исправить это, я регистрирую сопоставление тегов в Deserializer:
{"tag:yaml.org,2002:set", typeof (HashSet<object>)}
Затем я получаю исключение:
В YamlDotNet.dll произошло первое случайное исключение типа «YamlDotNet.Core.YamlException». «SequenceStart» получил «MappingStart» (строка: 4, столбец: 23, Idx: 108).
Я бы подумал, что обработка наборов является очень распространенным требованием для YAML, но я не могу понять, как это исправить.
Может кто подскажет как лечить?