5

我需要将yaml 文件转换为json 格式,以便根据json 模式对其进行验证。所以我使用yamldotnet读取 yaml 文件并使用json.net将其序列化为 json 格式的字符串。不幸的是,在那之后,所有的数值都被转换为字符串并且验证出错了。

我怎样才能避免这种情况?

这是我使用的代码:

var t = File.ReadAllText(src);
var d = new YamlDotNet.Serialization.Deserializer();
var sr = new StringReader(t);
var o = d.Deserialize(sr);
var s = new Newtonsoft.Json.JsonSerializer();
var sb = new StringBuilder();
var sw = new StringWriter(sb);
s.Serialize(sw, o);
txt = sb.ToString();
Console.WriteLine("JSON Output: {0}", txt);
4

1 回答 1

4

您可以通过在源 YAML 中强制使用带有标签的数据类型来解决此问题,例如

myObject:
  myIntValue: !!int 5
  myBoolValue: !!bool true
  myStringValue: hi there

这并不理想,但可能是一个有用的技巧。

于 2018-10-04T03:10:24.037 回答