YamlDotNet 将整数反序列化为数字而不是字符串

我需要将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);


慕少森
浏览 269回答 1
1回答

jeck猫

您可以通过在源 YAML 中强制使用带有标记的数据类型来解决此问题,例如myObject:  myIntValue: !!int 5  myBoolValue: !!bool true  myStringValue: hi there这并不理想,但可能是一个有用的技巧。
打开App,查看更多内容
随时随地看视频慕课网APP