我遇到了以下问题,该问题与我遇到的问题大体相同:
但是,我的情况略有不同。如果我修改该Test问题的类以使其具有相同类型的array属性,则会收到相同的反序列化错误。
class Test
{
public Test[] Tests;
}
var settings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.All
};
var o = new Test { Tests = new[] { new Test(), new Test() } };
//var o = new Test(); //this works if I leave the Tests array property null
var arr = new[] { o, o };
var ser = JsonConvert.SerializeObject(arr, settings);
arr = ((JArray)JsonConvert.DeserializeObject(ser, settings)).ToObject<Test[]>();
Run Code Online (Sandbox Code Playgroud)
我敢打赌,我缺少该属性的重要属性Tests。