C#序列化错误的JObject到YamlDotNet

时间:2017-05-03 18:28:34

标签: c# json serialization yaml yamldotnet

我开了一张票here,但我希望有人可以相当简单地回答。

YamlDotNet不支持ISerializable,但Json.Net支持ISerializable。因此,作为一种解决方法,我们首先尝试将对象序列化为JObject,这将尊重我们的序列化设置并仅序列化相应的属性。然后,我们想将我们的JObject发送到YamlSerializer,但是我们得到了这个错误:

"对象与目标类型不匹配"

1 个答案:

答案 0 :(得分:0)

以下帖子的建议可用作解决方法: How to convert JSON to YAML using YamlDotNet

即。 使用动态Expando对象将JSON转换为YAML。

示例:

var expConverter = new ExpandoObjectConverter();
var jsonString = JsonConvert.SerializeObject(anyObject);
var expandoObject = JsonConvert.DeserializeObject<ExpandoObject>(jsonString, expConverter);
var textInYamlFormat = serializer.Serialize(expandoObject);