gpt4 book ai didi

c# - 如何解析 yaml 字符串

转载 作者:太空狗 更新时间:2023-10-29 22:30:58 24 4
gpt4 key购买 nike

我想在 C# 中解析 yaml,以便获得哈希表列表。我正在使用 YamlDotNet。这是我的代码:

TextReader tr = new StringReader(txtRawData.Text);
var reader = new EventReader(new MergingParser(new Parser(tr)));
Deserializer des = new Deserializer(); ;
var result = des.Deserialize<List<Hashtable>>(tr);

它没有失败,但给了我一个空对象。

我的 yaml 是这样的:

- Label: entry
Layer: x
id: B35E246039E1CB70
- Ref: B35E246039E1CB70
Label: Info
Layer: x
id: CE0BEFC7022283A6
- Ref: CE0BEFC7022283A6
Label: entry
Layer: HttpWebRequest
id: 6DAA24FF5B777506

如何解析我的 yaml 并将其转换为所需的类型,而无需自己实现?

最佳答案

您问题中的 YAML 文档格式错误。每个键的缩进必须与前一个相同。由于您提到代码不会失败,我将假设您正在解析的实际文档格式正确。

我能够使用以下代码成功解析文档:

var deserializer = new Deserializer();
var result = deserializer.Deserialize<List<Hashtable>>(new StringReader(yaml));
foreach (var item in result)
{
Console.WriteLine("Item:");
foreach (DictionaryEntry entry in item)
{
Console.WriteLine("- {0} = {1}", entry.Key, entry.Value);
}
}

This fiddle显示代码有效。我已从您的代码中删除了第二行,因为它创建了一个从未使用过的对象。

另外,Hashtable可能不是您想使用的。由于 .NET 中引入了泛型,因此最好使用 Dictionary .它具有类型安全的优点。在这种情况下,您可以使用 Dictionary<string, string> .

关于c# - 如何解析 yaml 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25650113/

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