モデルがあるとしましょう:
public class Node<T> {
public T Value { get; set; }
}
int[]
結果のノードをシリアル化します。
{"value":[1,2,3]}
私は今それをデシリアライズしたい:Node<string>
したがって、JSON のチャンクとして扱います:
node.Value == "[1,2,3]"
私は今JsonConverter
、例えば使用するカスタムを使用してJToken.ReadFrom
、それを実行できるようToString
になりました。ただし、これによりフォーマットなどが壊れます。
新しいものを作成してJsonWriter
、 my で次のように使用することもできますConverter
。
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var sb = new StringBuilder();
using (var wo = new StringWriter(sb))
{
using (var w = new JsonTextWriter(wo))
{
w.WriteToken(reader, true);
}
}
return sb.ToString();
}
このソリューションで私が抱えている問題は、コンバーターでマークされた各プロパティのライターを作成することです...
3番目の解決策は、グラフを自分でトラバースし、ライターなどを再利用することです.
JSON 文字列内の特定のノードを生の JSON に逆シリアル化するための推奨される (最も効果的な) ソリューションはどれですか? JSON の結果には多くの項目が含まれるため、このノードを持つオブジェクトは 1 つだけではないことに注意してください。