It appears that TimeSpan milliseconds are not being serialized / deserialized correctly. I see the same behavior from ServiceStack.Text for version 4.5.4 and 4.5.8.
The following test demonstrates the issue I’m see.
[Test]
public void ServiceStack_Timespan_Text()
{
Assert.Multiple(() =>
{
for (int i = 1; i <= 999; i++)
{
TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0, i);
string json = JsonSerializer.SerializeToString(timeSpan);
TimeSpan timeSpanAfter = JsonSerializer.DeserializeFromString<TimeSpan>(json);
Assert.AreEqual(TimeSpan.FromMilliseconds(i), timeSpanAfter);
}
});
}