我正在尝试反序列化一些在序列化 Java HashSet 时在由 SnakeYaml 创建的字符串中设置的 YAML。不同的泛型类型被序列化,例如 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:set”或其依赖项之一。该系统找不到指定的文件。
为了解决这个问题,我将标签映射注册到反序列化器:
{"tag:yaml.org,2002:set", typeof (HashSet<object>)}
然后我得到异常:
YamlDotNet.dll 中出现“YamlDotNet.Core.YamlException”类型的第一次机会异常附加信息:(行:4,列:23,idx:108)-(行:5,列:9,idx:122):预期'SequenceStart',得到'MappingStart'(第 4 行,第 23 列,第 108 行)。
我原以为处理集是 YAML 的一个非常常见的要求,但我不知道如何解决这个问题。
任何人都可以建议如何处理?