/// <summary>
    /// 数组
    /// </summary>
    /// <param name="propertyName"></param>
    /// <param name="jsonReader"></param>
    /// <returns></returns>
    private bool ArrayDeserialize(string propertyName, JsonReader jsonReader)
    {
        if (jsonReader == null)
        {
            return(false);
        }

        if (propertyName == "specialGrids")
        {
            DeserializeArrayHelper dah = DeserializeArrayHelper.Create();

            dah.IntDeserializeCallback = delegate(int index, int intValue)
            {
                if (intValue >= allGrids.Count)
                {
                    Debug.LogErrorFormat("反序列化特殊格子失败,index {0} 超过最大格子数量, {1}", intValue, allGrids.Count);
                    return;
                }
                allGrids[intValue].gridType = MapGrid.GridType.Special;
            };
            dah.Deserialize(jsonReader, true);
            return(true);
        }
        return(false);
    }
    /// <summary>
    /// 反序列化数组、列表
    /// </summary>
    /// <param name="propertyName"></param>
    /// <param name="jsonReader"></param>
    /// <returns></returns>
    private bool ArrayDeserialize(string propertyName, JsonReader jsonReader)
    {
        if (propertyName == "battleUnits")
        {
            //先移除所有战斗单位
            RemoveAllBattleUntis();

            allBattleUnits = allBattleUnits ?? new List <BattleUnit>();

            DeserializeArrayHelper dah = DeserializeArrayHelper.Create();

            //这个数组的每个对象都是obj
            dah.ObjectDeserializeCallback = delegate(int index, JsonReader jr)
            {
                //反序列化每个战斗单位
                BattleUnit battleUnit = SingletonRecyclePool <BattleUnit> .Get();

                battleUnit.Deserialize(jr);
                allBattleUnits.Add(battleUnit);
            };

            dah.Deserialize(jsonReader, true);
            return(true);
        }
        return(false);
    }