问题标签 [yamldotnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
235 浏览

yaml - YamlDotNet 对象等价物是什么?

我有 2 个设置:

1

2

在场景 1 中,它似乎被反序列化为具有 ParamA、ParamB 和 ParamC 的类容器。

但是在场景 2 中(注意没有“-”,它有一个键/值设置,键是任何东西)如何将其表示为一个对象?

0 投票
1 回答
19284 浏览

c# - 如何解析 yaml 字符串

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

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

我的yaml就像:

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

0 投票
1 回答
1108 浏览

vb.net - YamlDotNet - Guid 属性的序列化生成空括号

我正在使用 YamlDotNet 库来序列化 Yaml 中的一些对象。我在 Guid 属性的序列化方面遇到了一些问题。Guid 属性的序列化生成空括号(例如:{})

请参阅下面的代码

此代码将输出:

与班级:

我错过了什么还是图书馆的问题?

0 投票
1 回答
917 浏览

c# - 流的 YAML 懒读

我正在使用 YAMLDotNet 库,并试图让 YamlVisitor 类触发它的事件,就像它到达每个节点类型的开始和结束时一样。如果流是使用文件或字符串的 StreamReader,这将正常工作,但如果我使用 serialPort 流,它会卡住(我想等待流结束??)

我的流是通过串行端口流动的数据,没有定义的结束。

我希望能够在每个 YAML 节点通过流时调用它们的开头和结尾处的函数。

这是我尝试过的:

当我打电话给yaml.Load(tr);它时,它就坐在那里等待。我能够收集到它会在令牌进入时对其进行处理,但 TracingVisitor 类中没有任何内容被调用。

这是将串行数据提供给流的程序。

这是一个要运行的 YAML 字符串

0 投票
1 回答
4041 浏览

c# - YamlDotNet 和自定义类型

我正在发现 yaml 和 yamldotnet。对不起,如果这是一个非常基本的问题:

  • 使用单个感叹号在 yaml 中定义用户定义的类型是否有意义,例如:

    红色:!color { 红色:255,绿色:0,蓝色:0 }

  • YamlDotNet 如何反序列化?换句话说,有没有办法确保类型颜色映射到.net 中的相应颜色类型?

  • 从我对下面例子https://dotnetfiddle.net/HD2JXM的理解来看,YamlDotNet 使用 yaml 文档和 .net 类之间的隐式对应关系,将 yaml 属性映射到对应的类属性(如示例所示,这个可以自定义带注释)。但是没有进行类型检查。

进一步澄清事情。我有以下 yaml 文档,它对应于一组小部件:

我想将它映射到 c# 中相应的类型层次结构:

请注意,这里有一个类似的问题海报:使用自定义类型解析器,尚未得到回答。

谢谢!

0 投票
1 回答
1020 浏览

c# - YamlDotNet 库是否支持文档分隔符?

这个YAML文件:

正在通过此代码反序列化:

结果是异常YamlDotNet.dll

Update1 : ​​SharpYaml:同样的例外

更新2 : @DarrelMiller:是的,从我的第一个示例中不清楚,但在第二个示例中可以看到文档分隔符的需要:

所以我需要分隔符来更改Deserializer.

@AntoineAubry:感谢您的回答和 YamlDotNet,我都喜欢他们。

0 投票
2 回答
1313 浏览

c# - YamlDotNet 库是否支持反序列化到现有对象?

库是否YamlDotNet支持Deserialization现有对象而不是创建新对象?
我需要它,因为我的对象是通过创建的Dependency Injection,所以我更喜欢Deserialization将所有属性填充(重写)到给定对象中的方式。

我没有找到合适的Deserialization方法重载。
当然,我知道我可以手动处理YamlMappingNode,但是该方法的简单性Deserialization是如此可爱,为每种类型编写一个复制构造函数也不是一种选择。引入具有属性值的中间字典是丑陋的。

另外,我认为它可能是非常需要的功能。

0 投票
1 回答
1361 浏览

c# - 如何将不匹配的标签序列化为字典?

我正在尝试使用YamlDotNet解析此 YAML 文档:

进入这个对象:

我希望 /a /b 或任何其他不匹配的属性最终出现在 Paths 字典中。如何配置YamlDotNet以支持这种情况?

反序列化设置是:

但是,鉴于SimpleDoc上没有属性/a ,它会失败。如果我在构造函数中将设置ignoreUnmatched设置为 true,它会按预期被忽略。

0 投票
1 回答
475 浏览

yamldotnet - 从 YamlStream 获取真正的布尔值

我使用 YamlDotnet 通过 YamlStream 将 yaml 流解析为字符串对象的字典。YamlMappingType、YamlSequenceNode 和 YamlScalarNode 用于将值转换为字典、列表或字符串。

但我需要得到一个真正的布尔值而不是等效的字符串,为此我使用

价值 veing 一个 YamlNode。

有没有更好的方法来做到这一点?也许是 YamlNode 的另一种子类型?

编辑:我不知道 YAML 文件的内容,我只想获取一个包含他的值的字典。

0 投票
1 回答
397 浏览

yamldotnet - 在对象内部使用对象

尝试使用YAMLDOTNET的序列化程序,当我有对象时遇到一些问题,该对象不仅由字符串组成,而且内部还有一个特殊的对象。

序列化时,我只会得到一个 {} 字符串。例如,如果在序列化对象图示例中,我们定义了一个结构地址。然后我们在里面新建一个Address类的对象,最终在receipt中赋值,结果也会是yaml文件地址字段上的{}。

示例代码也可以在这里看到。这将创建一个如下所示的输出:

所以 bill_to 将显示为 {}