2017-05-03 14 views
0

チケットhereをオープンしましたが、誰かがかなり簡単に答えられることを望んでいます。JObjectのYamlDotNetへのシリアライゼーションエラー

YamlDotNetはISerializableをサポートしていませんが、Json.Netはサポートしていません。そのため、回避策として、私たちのオブジェクトを最初にJObjectにシリアル化しようとしています。これはシリアル化設定を尊重し、適切なプロパティのみをシリアル化します。その後、我々はYamlSerializerに私たちのjオブジェクトを送りたいが、我々はこのエラーを取得:

次のポストごとに

+0

あなたはまず '辞書<文字列、オブジェクト>'に 'JObject'を変換する再帰的に試してみてください。 [JSON.NETを使用してネストされた/再帰的なディクショナリとリストにデシリアライズするにはどうすればよいですか?](https://stackoverflow.com/a/19140420/3744182)の答えは、これを行う方法の1つです。 – dbc

+0

提案していただきありがとうございます。 JObjectへの変換は苦痛ですが、それを別のものに変換するために、おそらくそれをYAMLに入れることはできないようです。 – solvingJ

答えて

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); 
関連する問題