如何将 YAML 转换为 JSON?

How to convert YAML to JSON?

我希望在 YAML 文件和 JSON 之间进行转换。这真的很难找到任何信息。

可以通过使用内置的 JSON 库和 YamlDotNet 来做到这一点。它在 YamlDotNet 文档中并不明显,但我找到了一种相当简单的方法。

// convert string/file to YAML object
var r = new StreamReader(filename); 
var deserializer = new Deserializer(namingConvention: new CamelCaseNamingConvention());
var yamlObject = deserializer.Deserialize(r);

// now convert the object to JSON. Simple!
Newtonsoft.Json.JsonSerializer js = new Newtonsoft.Json.JsonSerializer();

var w = new StringWriter();
js.Serialize(w, yamlObject);
string jsonText = w.ToString();

我很惊讶它的效果如此之好! JSON 输出与其他基于网络的工具相同。

如果不需要Json.NET的特性,也可以直接使用Serializer class emit JSON:

// now convert the object to JSON. Simple!
var js = new Serializer(SerializationOptions.JsonCompatible);

var w = new StringWriter();
js.Serialize(w, o);
string jsonText = w.ToString();

您可以在此处查看两个可用的小提琴: