public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var j = JObject.Load(reader); if (j == null || !j.HasValues) return null; IRegexpFilter filter = new RegexpFilterDescriptor<object>(); foreach (var jv in j) { switch (jv.Key) { case "_cache": filter.Cache = jv.Value.Value<bool>(); break; case "_cache_key": filter.CacheKey = jv.Value.Value<string>(); break; case "_name": filter.FilterName = jv.Value.Value<string>(); break; default: filter.Field = jv.Key; var value = jv.Value["value"]; if (value != null) filter.Value = value.Value<string>(); var flags = jv.Value["flags"]; if (flags != null) filter.Flags = flags.Value<string>(); break; } } return filter; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var j = JObject.Load(reader); if (j == null || !j.HasValues) { return(null); } IRegexpFilter filter = new RegexpFilterDescriptor <object>(); foreach (var jv in j) { switch (jv.Key) { case "_cache": filter.Cache = jv.Value.Value <bool>(); break; case "_cache_key": filter.CacheKey = jv.Value.Value <string>(); break; case "_name": filter.FilterName = jv.Value.Value <string>(); break; default: filter.Field = jv.Key; var value = jv.Value["value"]; if (value != null) { filter.Value = value.Value <string>(); } var flags = jv.Value["flags"]; if (flags != null) { filter.Flags = flags.Value <string>(); } break; } } return(filter); }