从YamlDotNet解串器访问密钥

时间:2016-11-30 14:27:22

标签: c# yamldotnet

我试图从源代码反序列化YAML文件,而我无法控制某些文件的数字键位置。

示例:

0:
    name: Category1
    published: true
1:
    name: Category2
    published: false

就我的目的而言,数字键对于存储很重要,因为其他数据集将如何引用数据。

示例:

3573:
    name: Item1
    category: 0
89475:
    name: Item2
    category: 1

有没有办法从YAMLDotNet的解串器访问该密钥来为该类提供信息?

1 个答案:

答案 0 :(得分:1)

我闻到了网上的气味...... o7 ...我也去过那里,所以这就是你的回答。将文档根节点用作(YamlMappingNode)并迭代子节点(键值对)。输入键将是categoryID,输入值将是类别数据。

        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();
            }
        }
相关问题