【发布时间】:2015-09-24 08:47:03
【问题描述】:
我正在尝试反序列化一些在序列化 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 列,第 23 列,第 108 行)-(第 5 行,第 9 列,第 9 列,第 122 行):预期为“SequenceStart”,得到“映射开始”(第 4 行,第 23 列,编号:108)。
我原以为处理集是 YAML 的一个非常常见的要求,但我不知道如何解决这个问题。
谁能告诉我如何处理?
【问题讨论】:
标签: java c# serialization snakeyaml yamldotnet