JSON.NET で特定のデータを逆シリアル化する際に問題があります。次の文字列は、JSON.NET 経由でシリアル化されていますが、正しく逆シリアル化されません。
{"ParentClause":null,"FilterClauseType":2,"FilterClauses":[ {"FilterClauseType":1,"FilterClauses":[],"ComparisonType":2,"FieldStaticName":"ContentType","Value": "Hidden","FieldValueType":2}, {"FilterClauseType":1,"FilterClauses":[],"ComparisonType":1,"FieldStaticName":"ContentType","Value":"Document","FieldValueType" :2}], "ComparisonType":null,"FieldStaticName":null,"Value":null,"FieldValueType":null}
JsonConvert.DeserializeObject()
実行すると、配列の要素FilterClauses
が明確に存在していても、それらがスキップされます。これは、メソッドのジェネリックまたは非ジェネリック オーバーロードのどちらを使用しても発生します。
これはバグですか、それともこれを修正する方法はありますか? custom を実装しようとしましJsonConverter
たが、JReader
渡されたものが例外をスローしています。
参考までに、これはクラス定義です。
class FilterClause
{
public FilterClause ParentClause {get; set;}
public FilterClauseType FilterClauseType {get; set;}
public IList<FilterClause> FilterClauses {get; set;}
public ComparisonType? ComparisonType {get; set;}
public String FieldStaticName {get; set;}
public String Value {get; set;}
public FieldValueType? FieldValueType {get; set;}
public FilterClause()
{
FilterClauses = ImmutableList.Create<FilterClause>();
}
}