在目标类型的空列表中反序列化Json结果

时间:2018-05-05 04:36:27

标签: c# json.net

当我尝试使用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());

1 个答案:

答案 0 :(得分:1)

经过进一步测试后,我确定在使用Xamarin Forms和Xamarin Live时,问题实际上是Visual Studio调试器中的一个错误。列表FoodPositions实际上已填充。见here。感谢所有人的反馈 - 我发现它填充的方式是添加一个foreach来枚举List,我看到它迭代了适当的次数。