gpt4 book ai didi

yaml - 如何使用 YamlDotNet 反序列化 yaml 文件中的键/值对列表

转载 作者:行者123 更新时间:2023-12-02 00:23:56 34 4
gpt4 key购买 nike

您好,我正在使用 YamlDotNet 反序列化这样的 yml 文件:

name: element name
description: something to describe

parameters:
- firstKey: value1
- secondKey: value2

这是用于反序列化的 .net 类:

class MyElement
{
public string name { get; set; }
public string description { get; set; }
public ??? parameters { get; set; }
}

我可以使用哪种类型来正确反序列化参数属性以列出键/值对数组?接下来,使用 key 检索值的更好方法是什么?

这是要反序列化的 C# 代码:

using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
...
var deser = new DeserializerBuilder().WithNamingConvention(new CamelCaseNamingConvention()).Build();
var reader = File.OpenText(pathToFileYml);
var data = deser.Deserialize<MyElement>(reader);

提前致谢

最佳答案

每个键值对都是一个映射,在 YAML 中有一个条目(单个键值对没有单独的结构)。因此,parameters应该是 List<Dictionary<string,string>> .

如果您只想查询每个键的值,您应该删除序列并将其设为单个 YAML 映射:

parameters:
firstKey: value1
secondKey: value2

这将反序列化为 Dictionary<string,string>然后您可以查询这些值。但是,参数的顺序会丢失。

如果需要保留参数的顺序,需要保留包含键值对的YAML序列,反序列化成OrderedDictionary<string,string> – afaik YamlDotNet 不直接支持这一点,但您可以使用原始结构 (List<Dictionary<string,string>>) 并从中构建一个 OrderedDictionary。

关于yaml - 如何使用 YamlDotNet 反序列化 yaml 文件中的键/值对列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430583/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com