/// <inheritdoc/> public override TimeSpan?Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { string iso8601Input = reader.GetString(); if (string.IsNullOrWhiteSpace(iso8601Input)) { return(null); } return(Iso8601TimeSpan.Parse(iso8601Input)); }
/// <inheritdoc/> public virtual bool Deserialize(IParser reader, Type expectedType, Func <IParser, Type, object> nestedObjectDeserializer, out object value) { if (expectedType != typeof(TimeSpan) && expectedType != typeof(TimeSpan?)) { return(this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value)); } if (!this.Inner.Deserialize(reader, typeof(string), nestedObjectDeserializer, out value)) { return(false); } value = Iso8601TimeSpan.Parse((string)value); return(true); }