public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
										JsonSerializer serializer)
		{
			var o = new CatFielddataRecord() { FieldSizes = new Dictionary<string, string>() };
			while (reader.Read())
			{
				var prop = reader.Value as string;
				if (prop == null) return o;

				switch (prop)
				{
					case "id":
						o.Id = reader.ReadAsString();
						continue;
					case "node":
					case "n":
						o.Node = reader.ReadAsString();
						continue;
					case "host":
						o.Host = reader.ReadAsString();
						continue;
					case "ip":
						o.Ip = reader.ReadAsString();
						continue;
					case "total":
						o.Total = reader.ReadAsString();
						continue;
					default:
						var value = reader.ReadAsString();
						o.FieldSizes[prop] = value;
						continue;
				}
			}
			return o;
		}
		public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
										JsonSerializer serializer)
		{
			var record = new CatFielddataRecord();
			while (reader.Read())
			{
				var prop = reader.Value as string;
				if (prop == null) return record;

				switch (prop)
				{
					case "id":
						record.Id = reader.ReadAsString();
						continue;
					case "node":
					case "n":
						record.Node = reader.ReadAsString();
						continue;
					case "host":
						record.Host = reader.ReadAsString();
						continue;
					case "ip":
						record.Ip = reader.ReadAsString();
						continue;
					case "field":
						record.Field = reader.ReadAsString();
						continue;
					case "size":
						record.Size = reader.ReadAsString();
						continue;
				}
			}
			return record;
		}
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
                                        JsonSerializer serializer)
        {
            var o = new CatFielddataRecord()
            {
                FieldSizes = new Dictionary <string, string>()
            };

            while (reader.Read())
            {
                var prop = reader.Value as string;
                if (prop == null)
                {
                    return(o);
                }

                switch (prop)
                {
                case "id":
                    o.Id = reader.ReadAsString();
                    continue;

                case "node":
                case "n":
                    o.Node = reader.ReadAsString();
                    continue;

                case "host":
                    o.Host = reader.ReadAsString();
                    continue;

                case "ip":
                    o.Ip = reader.ReadAsString();
                    continue;

                case "total":
                    o.Total = reader.ReadAsString();
                    continue;

                default:
                    var value = reader.ReadAsString();
                    o.FieldSizes[prop] = value;
                    continue;
                }
            }
            return(o);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
                                        JsonSerializer serializer
                                        )
        {
            var record = new CatFielddataRecord();

            while (reader.Read())
            {
                var prop = reader.Value as string;
                if (prop == null)
                {
                    return(record);
                }

                switch (prop)
                {
                case "id":
                    record.Id = reader.ReadAsString();
                    continue;

                case "node":
                case "n":
                    record.Node = reader.ReadAsString();
                    continue;

                case "host":
                    record.Host = reader.ReadAsString();
                    continue;

                case "ip":
                    record.Ip = reader.ReadAsString();
                    continue;

                case "field":
                    record.Field = reader.ReadAsString();
                    continue;

                case "size":
                    record.Size = reader.ReadAsString();
                    continue;
                }
            }
            return(record);
        }