public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var tableCollection = new ConfigTableCollection();

            while (reader.Read())
            {
                switch (reader.TokenType)
                {
                case JsonToken.EndObject:
                    return(tableCollection);

                case JsonToken.PropertyName:
                    var tableName = (string)reader.Value;
                    reader.Read();
                    var table = serializer.Deserialize <ConfigTable>(reader);
                    table.name = tableName;
                    tableCollection.Add(table);
                    break;
                }
            }

            return(tableCollection);
        }