当我尝试使用Newtonsoft JSON反序列化以下JSON时,我反序列化的目标类型总是为List属性返回null" FoodPositions"。该类的其他属性不返回null:
JSON示例:{"baxterPosition":"2x5","baxterFoodLevel":18,"mousePosition":"5x0","mouseFoodLevel":18,"foodPositions":["0x0","5x5"],"totalRounds":2,"gameComplete":false}
以下是我要反序列化的课程:
class BaxterResult
{
[JsonProperty("baxterPosition")]
public string BaxterPosition { get; set; }
[JsonProperty("baxterFoodLevel")]
public int BaxterFoodLevel { get; set; }
[JsonProperty("mousePosition")]
public string MousePosition { get; set; }
[JsonProperty("mouseFoodLevel")]
public int MouseFoodLevel { get; set; }
[JsonProperty("foodPositions")]
public List<string> FoodPositions { get; set; }
[JsonProperty("totalRounds")]
public int TotalRounds { get; set; }
[JsonProperty("gameComplete")]
public bool GameComplete { get; set; }
}
以下是反序列化的调用:
BaxterResult BaxterLocal = JsonConvert.DeserializeObject<BaxterResult>(reader.ReadToEnd());
答案 0 :(得分:1)
经过进一步测试后,我确定在使用Xamarin Forms和Xamarin Live时,问题实际上是Visual Studio调试器中的一个错误。列表FoodPositions实际上已填充。见here。感谢所有人的反馈 - 我发现它填充的方式是添加一个foreach来枚举List,我看到它迭代了适当的次数。