为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕少森 2021-07-01 04:19:49
我需要将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);
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

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


myObject:

  myIntValue: !!int 5

  myBoolValue: !!bool true

  myStringValue: hi there

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


查看完整回答
反对 回复 2021-07-03
  • 1 回答
  • 0 关注
  • 268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信