Я хотел бы проанализировать строку JSON и использовать свойство token.Type
для обнаружения значений типа JTokenType.TimeSpan
.
Я не могу понять, как выразить TimeSpan в моей входной строке, кажется, все интерпретируется как JTokenType.String.
var timeSpanString = TimeSpan.FromHours(1).ToString();
testString = string.Format(@"{{""Value"": ""{0}"" }}", timeSpanString);
var statObject = JObject.Parse(testString);
JToken token = statObject["Value"];
var tokenValue = token.ToString();
var tokenType = token.Type; // JTokenType.String
Я даже пробовал:
JValue jValue = new JValue("test");
jValue.Value = TimeSpan.FromHours(1);
bool isTimeSpan = jValue.Type == JTokenType.TimeSpan; // true!
testString = string.Format(@"{{""Value"": ""{0}"" }}", jValue.Value);
var statObject = JObject.Parse(testString);
JToken token = statObject["Value"];
var tokenValue = token.ToString();
var tokenType = token.Type; // JTokenType.String
Который, по крайней мере, создает объект JValue tokenType JTokenType.TimeSpan, но все же отображается как JTokenType.String при его анализе.
Это отлично работает для объектов DateTime. Как я могу выразить входную строку так, чтобы тип анализируемого значения был JTokenType.TimeSpan
?