public void Serialize(ref JsonWriter writer, ISpanGapQuery value, IJsonFormatterResolver formatterResolver) { if (value == null || SpanGapQuery.IsConditionless(value)) { writer.WriteNull(); return; } writer.WriteBeginObject(); var inferrer = formatterResolver.GetConnectionSettings().Inferrer; writer.WritePropertyName(inferrer.Field(value.Field)); writer.WriteInt32(value.Width.Value); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var gapQuery = value as ISpanGapQuery; if (value == null || SpanGapQuery.IsConditionless(gapQuery)) { writer.WriteNull(); return; } var settings = serializer.GetConnectionSettings(); var fieldName = settings.Inferrer.Field(gapQuery.Field); writer.WriteStartObject(); writer.WritePropertyName(fieldName); writer.WriteValue(gapQuery.Width); writer.WriteEndObject(); }
public ISpanGapQuery Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) { if (reader.GetCurrentJsonToken() == JsonToken.Null) { return(null); } var count = 0; var query = new SpanGapQuery(); while (reader.ReadIsInObject(ref count)) { if (count > 1) { continue; } query.Field = reader.ReadPropertyName(); query.Width = reader.ReadInt32(); } return(query); }