[英]Read date from JObject JSON.Net
我想动态读取json。 我有一切工作,但约会。 所以我有
JObject obj = JObject.Load(reader);
data.location= (obj["duration"].Value<double>());
data.deviceID = (obj["deviceID"].Value<string>());
data.reason= (obj["reason"].Value<string>());
data.id= (obj["id"].Value<string>());
// data.startTime=(obj["startTime"].Value<DateTime>());
string start = (string)obj.SelectToken("startTime");
在速记中,日期看起来像
所以我试着没有运气的约会时间。 如果我能得到字符串值,我发现了一个不同的stackoverflow帖子,用于解决方案。 但是我还不能很好地阅读它
private DateTime TryParseIso8601(string s)
{
string format = s.EndsWith("Z") ? "yyyy-MM-ddTHH:mm:ssZ" : "yyyy-MM-ddTHH:mm:sszzz";
DateTime date = new DateTime();
DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out date);
return date;
}
每条评论,由异常生成
data.startTime = (obj["startTime"].Value<DateTime>());
您可以使用SelectToken
来读取日期。
var jToken = obj.SelectToken("startTime.$date");
var date = jToken.Value<DateTime>();
检查这个实况小提琴 - https://dotnetfiddle.net/9o4FJt
示例代码:
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public class Program
{
public static void Main()
{
var jsonString = "{\"startTime\" : { \"$date\" : \"2018-03-19T19:38:02.929Z\"} }";
var jObj = JsonConvert.DeserializeObject<JObject>(jsonString);
Console.WriteLine(jObj);
var jToken = jObj.SelectToken("startTime.$date");
Console.WriteLine(jToken.Value<DateTime>());
Console.WriteLine("Hello World");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.