从 YamlDotNet 解串器访问密钥
Accessing key from YamlDotNet deserializer
我正在尝试从我无法控制的来源反序列化 YAML 文件,其中一些文件有数字键。
示例:
0:
name: Category1
published: true
1:
name: Category2
published: false
为了我的目的,存储数字键很重要,因为这是其他数据集引用数据的方式。
示例:
3573:
name: Item1
category: 0
89475:
name: Item2
category: 1
有没有办法从 YAMLDotNet 的反序列化器访问密钥以提供 class?
我在网上闻到 eve...o7...我也去过那里,所以这就是您的答案。使用文档根节点作为 (YamlMappingNode) 并迭代子节点(键值对)。输入键将是类别 ID,输入值将是类别数据。
YamlMappingNode mapping = (YamlMappingNode)yaml.Documents[0].RootNode;
foreach (var entry in mapping.Children)
{
int categoryID = Int32.Parse(entry.Key.ToString());
YamlMappingNode params = (YamlMappingNode)entry.Value;
foreach (var param in params.Children)
{
string paramName = param.Key.ToString();
// Assign value to parameter.
if(paramName == "name")
name = param.Value.ToString();
}
}
我正在尝试从我无法控制的来源反序列化 YAML 文件,其中一些文件有数字键。
示例:
0:
name: Category1
published: true
1:
name: Category2
published: false
为了我的目的,存储数字键很重要,因为这是其他数据集引用数据的方式。
示例:
3573:
name: Item1
category: 0
89475:
name: Item2
category: 1
有没有办法从 YAMLDotNet 的反序列化器访问密钥以提供 class?
我在网上闻到 eve...o7...我也去过那里,所以这就是您的答案。使用文档根节点作为 (YamlMappingNode) 并迭代子节点(键值对)。输入键将是类别 ID,输入值将是类别数据。
YamlMappingNode mapping = (YamlMappingNode)yaml.Documents[0].RootNode;
foreach (var entry in mapping.Children)
{
int categoryID = Int32.Parse(entry.Key.ToString());
YamlMappingNode params = (YamlMappingNode)entry.Value;
foreach (var param in params.Children)
{
string paramName = param.Key.ToString();
// Assign value to parameter.
if(paramName == "name")
name = param.Value.ToString();
}
}