我想解析 JSON 字符串并使用该token.Type
属性来检测 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
这至少会产生一个tokenType JTokenType.TimeSpan的 JValue对象,但在我解析它时仍然显示为 JTokenType.String。
这非常适用于 DateTime 对象。如何表达输入字符串,使得解析的值类型为JTokenType.TimeSpan
?