public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var filter = new TermsQueryDescriptor<object>(); ITermsQuery f = filter; if (reader.TokenType != JsonToken.StartObject) return null; var depth = reader.Depth; while (reader.Read() && reader.Depth >= depth && reader.Value != null) { var property = reader.Value as string; switch (property) { case "boost": reader.Read(); f.Boost = reader.Value as double?; break; case "_name": f.Name = reader.ReadAsString(); break; default: f.Field = property; //reader.Read(); ReadTerms(f, reader, serializer); //reader.Read(); break; } } return filter; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var filter = new TermsQueryDescriptor <object, object>(); ITermsQuery f = filter; if (reader.TokenType != JsonToken.StartObject) { return(null); } var depth = reader.Depth; while (reader.Read() && reader.Depth >= depth && reader.Value != null) { var property = reader.Value as string; switch (property) { case "disable_coord": reader.Read(); f.DisableCoord = reader.Value as bool?; break; case "minimum_should_match": f.MinimumShouldMatch = reader.ReadAsString(); break; case "boost": reader.Read(); f.Boost = reader.Value as double?; break; default: f.Field = property; //reader.Read(); ReadTerms(f, reader); //reader.Read(); break; } } return(filter); }